Loading ChangeLog +4 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,10 @@ Changes in version 0.1.2.9-??? - 2007-??-?? to INT32_MAX. - Fix a potential race condition in the rpm installer. Found by Stefan Nordhausen. - Try to fix eventdns warnings once and for all: do not treat a dns rcode of 2 as indicating that the server is completely bad; it sometimes means that the server is just bad for the request in question. (may fix the last of bug 326.) Changes in version 0.1.2.8-beta - 2007-02-26 Loading src/or/eventdns.c +15 −6 Original line number Diff line number Diff line Loading @@ -696,7 +696,6 @@ reply_handle(struct request *const req, u16 flags, u32 ttl, struct reply *reply) } switch(error) { case DNS_ERR_SERVERFAILED: case DNS_ERR_NOTIMPL: case DNS_ERR_REFUSED: // we regard these errors as marking a bad nameserver Loading @@ -708,6 +707,15 @@ reply_handle(struct request *const req, u16 flags, u32 ttl, struct reply *reply) if (!request_reissue(req)) return; } break; case DNS_ERR_SERVERFAILED: // rcode 2 (servfailed) sometimes means "we are broken" and // sometimes (with some binds) means "that request was very // confusing." Treat this as a timeout, not a failure. /*XXXX refactor the parts of */ log(EVDNS_LOG_DEBUG, "Got a SERVERFAILED from nameserver %s; " "will allow the request to time out.", debug_nota(req->ns->address)); break; default: // we got a good reply from the nameserver nameserver_up(req->ns); Loading Loading @@ -1876,9 +1884,9 @@ evdns_request_transmit(struct request *req) { case 2: // failed in some other way retcode = 1; // fall through break; default: // all ok // transmitted; we need to check for timeout. log(EVDNS_LOG_DEBUG, "Setting timeout for request %lx", (unsigned long) req); evtimer_set(&req->timeout_event, evdns_request_timeout_callback, req); Loading @@ -1888,11 +1896,12 @@ evdns_request_transmit(struct request *req) { (unsigned long) req); // ???? Do more? } } req->tx_count++; req->transmit_me = 0; return retcode; } } static void nameserver_probe_callback(int result, char type, int count, int ttl, void *addresses, void *arg) { Loading Loading
ChangeLog +4 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,10 @@ Changes in version 0.1.2.9-??? - 2007-??-?? to INT32_MAX. - Fix a potential race condition in the rpm installer. Found by Stefan Nordhausen. - Try to fix eventdns warnings once and for all: do not treat a dns rcode of 2 as indicating that the server is completely bad; it sometimes means that the server is just bad for the request in question. (may fix the last of bug 326.) Changes in version 0.1.2.8-beta - 2007-02-26 Loading
src/or/eventdns.c +15 −6 Original line number Diff line number Diff line Loading @@ -696,7 +696,6 @@ reply_handle(struct request *const req, u16 flags, u32 ttl, struct reply *reply) } switch(error) { case DNS_ERR_SERVERFAILED: case DNS_ERR_NOTIMPL: case DNS_ERR_REFUSED: // we regard these errors as marking a bad nameserver Loading @@ -708,6 +707,15 @@ reply_handle(struct request *const req, u16 flags, u32 ttl, struct reply *reply) if (!request_reissue(req)) return; } break; case DNS_ERR_SERVERFAILED: // rcode 2 (servfailed) sometimes means "we are broken" and // sometimes (with some binds) means "that request was very // confusing." Treat this as a timeout, not a failure. /*XXXX refactor the parts of */ log(EVDNS_LOG_DEBUG, "Got a SERVERFAILED from nameserver %s; " "will allow the request to time out.", debug_nota(req->ns->address)); break; default: // we got a good reply from the nameserver nameserver_up(req->ns); Loading Loading @@ -1876,9 +1884,9 @@ evdns_request_transmit(struct request *req) { case 2: // failed in some other way retcode = 1; // fall through break; default: // all ok // transmitted; we need to check for timeout. log(EVDNS_LOG_DEBUG, "Setting timeout for request %lx", (unsigned long) req); evtimer_set(&req->timeout_event, evdns_request_timeout_callback, req); Loading @@ -1888,11 +1896,12 @@ evdns_request_transmit(struct request *req) { (unsigned long) req); // ???? Do more? } } req->tx_count++; req->transmit_me = 0; return retcode; } } static void nameserver_probe_callback(int result, char type, int count, int ttl, void *addresses, void *arg) { Loading