This is an automated email from the ASF dual-hosted git repository.
eze pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 5feefeb Fixing DNS local_ipv* config option (#7507)
5feefeb is described below
commit 5feefebddc430322c1c3b6bec37e6fbce1c4b06a
Author: Evan Zelkowitz <[email protected]>
AuthorDate: Tue Feb 9 14:16:14 2021 -0700
Fixing DNS local_ipv* config option (#7507)
The DNS local ip setting currently does not work. It gets overwritten with
a default ANY address when we, by default, go to choose a random port. This
removes the shadowing of the local variable that already has the local address
either set via parameter or set to ANY if a parameter is not set.
Also adding records docs to make this a real parameter that people can know
about
---
doc/admin-guide/files/records.config.en.rst | 9 +++++++++
iocore/dns/DNSConnection.cc | 11 -----------
2 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/doc/admin-guide/files/records.config.en.rst
b/doc/admin-guide/files/records.config.en.rst
index 47e1880..501f231 100644
--- a/doc/admin-guide/files/records.config.en.rst
+++ b/doc/admin-guide/files/records.config.en.rst
@@ -2570,6 +2570,15 @@ DNS
Maximum number of retries made by |TS| on a given DNS query
+.. ts:cv:: CONFIG proxy.config.dns.local_ipv4 STRING NULL
+
+ Local IPV4 address to bind to in order to make DNS requests
+
+.. ts:cv:: CONFIG proxy.config.dns.local_ipv6 STRING NULL
+
+ Local IPV6 address to bind to in order to make DNS requests
+
+
HostDB
======
diff --git a/iocore/dns/DNSConnection.cc b/iocore/dns/DNSConnection.cc
index 1f2dab6..35e49a2 100644
--- a/iocore/dns/DNSConnection.cc
+++ b/iocore/dns/DNSConnection.cc
@@ -140,17 +140,6 @@ DNSConnection::connect(sockaddr const *addr, Options const
&opt)
if (opt._bind_random_port) {
int retries = 0;
- IpEndpoint bind_addr;
- size_t bind_size = 0;
- memset(&bind_addr, 0, sizeof bind_addr);
- bind_addr.sa.sa_family = af;
- if (AF_INET6 == af) {
- bind_addr.sin6.sin6_addr = in6addr_any;
- bind_size = sizeof bind_addr.sin6;
- } else {
- bind_addr.sin.sin_addr.s_addr = INADDR_ANY;
- bind_size = sizeof bind_addr.sin;
- }
while (retries++ < 10000) {
ip_port_text_buffer b;
uint32_t p = generator.random();