From: Haw Loeung Date: Fri, 15 Aug 2014 23:32:37 +0000 (+1000) Subject: Revert "Make it more portable and also fixed dorequest() and dns_ack6() to include... X-Git-Tag: v0.86~4^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f0a56b089bb8dd919ea6a91ae2c00c728df88a5;p=thirdparty%2Fmtr.git Revert "Make it more portable and also fixed dorequest() and dns_ack6() to include IPv6 nameservers." This reverts commit 8e1bea50eee25c0ba8550254ad14fcba0614ed83. --- diff --git a/dns.c b/dns.c index 75bb267..21ab60a 100644 --- a/dns.c +++ b/dns.c @@ -57,12 +57,8 @@ #ifdef ENABLE_IPV6 #ifdef __GLIBC__ -#define NSCOUNT myres.nscount + myres._u._ext.nscount6 -#define NSCOUNT6 myres._u._ext.nscount6 #define NSSOCKADDR6(i) (myres._u._ext.nsaddrs[i]) #else -#define NSCOUNT myres.nscount -#define NSCOUNT6 myres.nscount #define NSSOCKADDR6(i) (&(myres._u._ext.ext->nsaddrs[i].sin6)) #endif #endif @@ -513,11 +509,16 @@ int dns_waitfd6(void) void dns_open(void) { - int option,i; + int option,i,nscount; if (!dns) return; MY_RES_INIT(); - if (!NSCOUNT) { +#ifdef ENABLE_IPV6 + nscount = myres.nscount + myres._u._ext.nscount6; +#else + nscount = myres.nscount; +#endif + if (!nscount) { fprintf(stderr,"No nameservers defined.\n"); exit(-1); } @@ -939,7 +940,7 @@ void dorequest(char *s,int type,word id) } hp = (packetheader *)buf; hp->id = id; /* htons() deliberately left out (redundant) */ - for (i = 0;i < NSCOUNT;i++) + 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)); @@ -1343,7 +1344,7 @@ void dns_ack6(void) /* Check to see if this server is actually one we sent to */ if ( addrcmp( (void *) &(from6->sin6_addr), (void *) &localhost6, (int) AF_INET6 ) == 0 ) { - for (i = 0;i < NSCOUNT6;i++) { + for (i = 0;i < myres.nscount;i++) { if (!NSSOCKADDR6(i)) continue; @@ -1354,14 +1355,14 @@ void dns_ack6(void) break; } } else - for (i = 0;i < NSCOUNT6;i++) { + for (i = 0;i < myres.nscount;i++) { if (!NSSOCKADDR6(i)) continue; if ( addrcmp( (void *) &(NSSOCKADDR6(i)->sin6_addr), (void *) &(from6->sin6_addr), AF_INET6 ) == 0 ) break; } - if (i == NSCOUNT6) { + if (i == myres.nscount) { snprintf(tempstring, sizeof(tempstring), "Resolver error: Received reply from unknown source: %s", inet_ntop( AF_INET6, &(from6->sin6_addr), addrstr,