diff --git a/doc/Changelog b/doc/Changelog index a8c125980..48585cbe9 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -9,6 +9,10 @@ - fixed file descriptor leak for localzone type deny (for TCP). - fixed memleak at exit for nsec3 negative cached zones. - fixed memleak for the keyword 'nodefault' when reading config. + - made verbosity of 'edns incapable peer' warning higher, so you + do not get spammed by it. + - caught elusive Bad file descriptor error bug, that would print the + error while unnecessarily try to listen to a closed fd. Fixed. 4 November 2008: Wouter - fixed -Wwrite-strings warnings that result in better code. diff --git a/services/outside_network.c b/services/outside_network.c index f7413f3b7..4d6279145 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -1490,7 +1490,7 @@ serviced_udp_callback(struct comm_point* c, void* arg, int error, if(sq->status == serviced_query_PROBE_EDNS) { /* probe without EDNS succeeds, so we conclude that this * host likely has EDNS packets dropped */ - log_addr(VERB_OPS, "timeouts, concluded that connection to " + log_addr(VERB_DETAIL, "timeouts, concluded that connection to " "host drops EDNS packets", &sq->addr, sq->addrlen); if(!infra_edns_update(outnet->infra, &sq->addr, sq->addrlen, -1, (uint32_t)now.tv_sec)) { diff --git a/util/netevent.c b/util/netevent.c index 6d1726acb..edbd14484 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -503,7 +503,8 @@ comm_point_udp_callback(int fd, short event, void* arg) if(recv == -1) { #ifndef USE_WINSOCK if(errno != EAGAIN && errno != EINTR) - log_err("recvfrom failed: %s", strerror(errno)); + log_err("recvfrom %d failed: %s", + fd, strerror(errno)); #else if(WSAGetLastError() != WSAEINPROGRESS && WSAGetLastError() != WSAECONNRESET && @@ -522,7 +523,8 @@ comm_point_udp_callback(int fd, short event, void* arg) (void)comm_point_send_udp_msg(rep.c, rep.c->buffer, (struct sockaddr*)&rep.addr, rep.addrlen); } - if(rep.c->fd == -1) /* commpoint closed */ + if(rep.c->fd != fd) /* commpoint closed to -1 or reused for + another UDP port. Note rep.c cannot be reused with TCP fd. */ break; } }