fix and more debug
[adns] / src / event.c
index 7050ca8..e083b89 100644 (file)
@@ -339,6 +339,7 @@ int adns__pollfds(adns_state ads, struct pollfd pollfds_buf[MAX_POLLFDS]) {
 int adns_processreadable(adns_state ads, int fd, const struct timeval *now) {
   int want, dgramlen, r, i, udpaddrlen, serv, old_skip;
   byte udpbuf[DNS_MAXUDP];
+  char addrbuf[MAX_ADDRSTRLEN];
   struct udpsocket *udp;
   adns_sockaddr udpaddr;
   
@@ -408,13 +409,12 @@ int adns_processreadable(adns_state ads, int fd, const struct timeval *now) {
        }
        for (serv= 0;
             serv < ads->nservers &&
-              !(udpaddr.sa.sa_family == ads->servers[serv].addr.sa.sa_family &&
-                udp->ai->sockaddr_equalp(&udpaddr.sa,
-                                         &ads->servers[serv].addr.sa));
+              !adns__sockaddr_equal_p(&udpaddr.sa,
+                                      &ads->servers[serv].addr.sa);
             serv++);
        if (serv >= ads->nservers) {
          adns__warn(ads,-1,0,"datagram received from unknown nameserver %s",
-                    adns__sockaddr_ntoa(&udpaddr.sa, udpaddrlen));
+                    adns__sockaddr_ntoa(&udpaddr.sa, udpaddrlen, addrbuf));
          continue;
        }
        adns__procdgram(ads,udpbuf,r,serv,0,*now);