]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
Restore the name resolver query order to their relative position in 41/head
authoraquerubin <tony@lavanauts.org>
Wed, 29 Jan 2014 00:50:06 +0000 (14:50 -1000)
committeraquerubin <tony@lavanauts.org>
Wed, 29 Jan 2014 00:50:06 +0000 (14:50 -1000)
/etc/resolv.conf (the IPv6 resolver patch I submitted earlier broke this
normal, expected behaviour).  Ie. currently, IPv6 resolvers are always
queried before IPv4 resolvers regardless of their position in
resolv.conf.

Update my email address in AUTHORS.

AUTHORS
dns.c

diff --git a/AUTHORS b/AUTHORS
index a86abc0f8c4a8c572b36c2f5be38488fb4e75cea..c3ec5affee0e6dc8605f9b0555e6f9b65f8aeafa 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -25,7 +25,7 @@
         Mike Simons <msimons@moria.simons-clan.com>
         Aaron Scarisbrick
         Craig Milo Rogers <Rogers@ISI.EDU>
-        Antonio Querubin <tony@aloha.net>
+        Antonio Querubin <tony@lavanauts.org>
         Russell Nelson <rn-mtr@crynwr.com>
         Davin Milun
         Josh Martin <jmartin@columbiaservices.net>
diff --git a/dns.c b/dns.c
index 4076b71d624e43c5959335821698f0f6c89ec1fc..32b83c2b3741874769bbf257604c1899f9e71693 100644 (file)
--- a/dns.c
+++ b/dns.c
 
 #ifdef ENABLE_IPV6
 #ifdef __GLIBC__
-#define NSCOUNT6 myres._u._ext.nscount6
 #define NSSOCKADDR6(i) (myres._u._ext.nsaddrs[i])
 #else
-#define NSCOUNT6 myres.nscount
 #define NSSOCKADDR6(i) (&(myres._u._ext.ext->nsaddrs[i].sin6))
 #endif
 #endif
@@ -937,21 +935,19 @@ void dorequest(char *s,int type,word id)
   }
   hp = (packetheader *)buf;
   hp->id = id; /* htons() deliberately left out (redundant) */
+  for (i = 0;i < myres.nscount;i++)
+    if (myres.nsaddr_list[i].sin_family == AF_INET)
+      (void)sendto(resfd,buf,r,0,(struct sockaddr *)&myres.nsaddr_list[i],
+                  sizeof(struct sockaddr));
 #ifdef ENABLE_IPV6
-  if (resfd6 > 0) {
-    for (i = 0;i < myres.nscount;i++) {
+    else if (resfd6 > 0) {
       if (!NSSOCKADDR6(i))
        continue;
       if (NSSOCKADDR6(i)->sin6_family == AF_INET6)
        (void)sendto(resfd6,buf,r,0,(struct sockaddr *) NSSOCKADDR6(i),
                     sizeof(struct sockaddr_in6));
     }
-  }
 #endif
-  for (i = 0;i < myres.nscount;i++)
-    if (myres.nsaddr_list[i].sin_family == AF_INET)
-      (void)sendto(resfd,buf,r,0,(struct sockaddr *)&myres.nsaddr_list[i],
-                  sizeof(struct sockaddr));
 }
 
 void resendrequest(struct resolve *rp,int type)