|
 |
ad48f7 |
From eae1b58c5a9f074f79a0edfaeb1cf7a4e77a34cb Mon Sep 17 00:00:00 2001
|
|
 |
ad48f7 |
From: Michal Sekletar <sekletar.m@gmail.com>
|
|
 |
ad48f7 |
Date: Tue, 24 Sep 2013 12:56:11 +0200
|
|
 |
ad48f7 |
Subject: [PATCH] dns: iterate over all configured nameservers
|
|
 |
ad48f7 |
|
|
 |
ad48f7 |
Previously if there were three nameservers configured and third one was
|
|
 |
ad48f7 |
reachable via IPv6 we didn't sent query to it, since NSCOUNT6 was equal to
|
|
 |
ad48f7 |
one. Clearly it was the original intention to sent query to all IPv6
|
|
 |
ad48f7 |
nameservers.
|
|
 |
ad48f7 |
|
|
 |
ad48f7 |
Reported-by: Benedikt Gollatz <benedikt@gollatz.net>
|
|
 |
ad48f7 |
---
|
|
 |
ad48f7 |
dns.c | 8 ++++----
|
|
 |
ad48f7 |
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
 |
ad48f7 |
|
|
 |
ad48f7 |
diff --git a/dns.c b/dns.c
|
|
 |
ad48f7 |
index 221665d..e89fd4b 100644
|
|
 |
ad48f7 |
--- a/dns.c
|
|
 |
ad48f7 |
+++ b/dns.c
|
|
 |
ad48f7 |
@@ -938,7 +938,7 @@ void dorequest(char *s,int type,word id)
|
|
 |
ad48f7 |
hp->id = id; /* htons() deliberately left out (redundant) */
|
|
 |
ad48f7 |
#ifdef ENABLE_IPV6
|
|
 |
ad48f7 |
if (resfd6 > 0) {
|
|
 |
ad48f7 |
- for (i = 0;i < NSCOUNT6;i++) {
|
|
 |
ad48f7 |
+ for (i = 0;i < myres.nscount;i++) {
|
|
 |
ad48f7 |
if (!NSSOCKADDR6(i))
|
|
 |
ad48f7 |
continue;
|
|
 |
ad48f7 |
if (NSSOCKADDR6(i)->sin6_family == AF_INET6)
|
|
 |
ad48f7 |
@@ -1342,7 +1342,7 @@ void dns_ack6(void)
|
|
 |
ad48f7 |
/* Check to see if this server is actually one we sent to */
|
|
 |
ad48f7 |
if ( addrcmp( (void *) &(from6->sin6_addr), (void *) &localhost6,
|
|
 |
ad48f7 |
(int) AF_INET6 ) == 0 ) {
|
|
 |
ad48f7 |
- for (i = 0;i < NSCOUNT6;i++) {
|
|
 |
ad48f7 |
+ for (i = 0;i < myres.nscount;i++) {
|
|
 |
ad48f7 |
if (!NSSOCKADDR6(i))
|
|
 |
ad48f7 |
continue;
|
|
 |
ad48f7 |
|
|
 |
ad48f7 |
@@ -1353,14 +1353,14 @@ void dns_ack6(void)
|
|
 |
ad48f7 |
break;
|
|
 |
ad48f7 |
}
|
|
 |
ad48f7 |
} else
|
|
 |
ad48f7 |
- for (i = 0;i < NSCOUNT6;i++) {
|
|
 |
ad48f7 |
+ for (i = 0;i < myres.nscount;i++) {
|
|
 |
ad48f7 |
if (!NSSOCKADDR6(i))
|
|
 |
ad48f7 |
continue;
|
|
 |
ad48f7 |
if ( addrcmp( (void *) &(NSSOCKADDR6(i)->sin6_addr),
|
|
 |
ad48f7 |
(void *) &(from6->sin6_addr), AF_INET6 ) == 0 )
|
|
 |
ad48f7 |
break;
|
|
 |
ad48f7 |
}
|
|
 |
ad48f7 |
- if (i == NSCOUNT6) {
|
|
 |
ad48f7 |
+ if (i == myres.nscount) {
|
|
 |
ad48f7 |
snprintf(tempstring, sizeof(tempstring),
|
|
 |
ad48f7 |
"Resolver error: Received reply from unknown source: %s",
|
|
 |
ad48f7 |
inet_ntop( AF_INET6, &(from6->sin6_addr), addrstr,
|
|
 |
ad48f7 |
--
|
|
 |
ad48f7 |
1.8.3.1
|
|
 |
ad48f7 |
|