aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2022-04-22 09:13:14 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-22 09:13:14 +0000
commit1b43c810c32451f5d6c4bdc43065e4fa1dc2a860 (patch)
treedc10d2732caafb0ca8628e7efa1603fda6ef02ab
parentc585e605303aa48d46ffd2ec2ae0574142c0d99b (diff)
parent8600c688176a042275e7f9fbd0826950397ac059 (diff)
downloadDnsResolver-1b43c810c32451f5d6c4bdc43065e4fa1dc2a860.tar.gz
Merge "Exclude source port 5353 from DNS query" am: 8600c68817
Original change: https://android-review.googlesource.com/c/platform/packages/modules/DnsResolver/+/2059528 Change-Id: Ifa9d129e23a009f1173e5bceb7a349212db37846 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--res_send.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/res_send.cpp b/res_send.cpp
index 0eed3295..f2a4a46c 100644
--- a/res_send.cpp
+++ b/res_send.cpp
@@ -253,7 +253,7 @@ static struct timespec evNowTime(void) {
// END: Code copied from ISC eventlib
/* BIONIC-BEGIN: implement source port randomization */
-static int random_bind(int s, int family, bool isMdns) {
+static int random_bind(int s, int family) {
sockaddr_union u;
int j;
socklen_t slen;
@@ -281,7 +281,7 @@ static int random_bind(int s, int family, bool isMdns) {
int port = 1025 + (arc4random_uniform(65535 - 1025));
// RFC 6762 section 5.1: Don't use 5353 source port on one-shot Multicast DNS queries. DNS
// resolver does not fully compliant mDNS.
- if (isMdns && port == 5353) continue;
+ if (port == 5353) continue;
if (family == AF_INET)
u.sin.sin_port = htons(port);
@@ -779,7 +779,7 @@ same_ns:
}
}
errno = 0;
- if (random_bind(statp->tcp_nssock, nsap->sa_family, false /* isMdns */) < 0) {
+ if (random_bind(statp->tcp_nssock, nsap->sa_family) < 0) {
*terrno = errno;
dump_error("bind/vc", nsap);
statp->closeSockets();
@@ -1082,9 +1082,7 @@ static int setupUdpSocket(ResState* statp, const sockaddr* sockap, unique_fd* fd
}
}
- const auto addr = IPSockAddr::toIPSockAddr(*sockap);
- const bool isMdns = (addr == mdns_addrs[0] || addr == mdns_addrs[1]);
- if (random_bind(*fd_out, sockap->sa_family, isMdns) < 0) {
+ if (random_bind(*fd_out, sockap->sa_family) < 0) {
*terrno = errno;
dump_error("bind", sockap);
return 0;