diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst index 29e983f1885..beab998ebd4 100644 --- a/doc/admin-guide/files/records.config.en.rst +++ b/doc/admin-guide/files/records.config.en.rst @@ -2419,6 +2419,15 @@ DNS ``2`` TCP_ONLY: |TS| always talks to nameservers over TCP. ===== ====================================================================== +.. 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 59a1f7ad998..d08a4c84e15 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();