Blame SOURCES/mtr-query-all-ipv6-nameservers.patch

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