Fix one case of bug 929.

svn:r18683
This commit is contained in:
Nick Mathewson 2009-02-23 20:04:51 +00:00
parent c7f3416a9e
commit 27c3b43817
2 changed files with 9 additions and 2 deletions

View File

@ -32,6 +32,10 @@ Changes in version 0.2.1.13-????? - 2009-02-??
circuit. Patch from lark.
- When we erroneously receive two EXTEND cells for the same circuit ID
on the same connection, drop the second. Patch from lark.
- Fix a crash that occurs on exit nodes when a nameserver request
timed out. Bugfix on 0.1.2.1-alpha; our CLEAR debugging code
had been suppressing the bug since 0.1.2.10-alpha. Partial fix
for bug 929.
o Minor features:
- On Linux, use the prctl call to re-enable core dumps when the user

View File

@ -2016,14 +2016,17 @@ evdns_request_timeout_callback(int fd, short events, void *arg) {
nameserver_failed(req->ns, "request timed out.");
}
del_timeout_event(req);
CLEAR(&req->timeout_event);
if (req->tx_count >= global_max_retransmits) {
/* this request has failed */
reply_callback(req, 0, DNS_ERR_TIMEOUT, NULL);
request_finished(req, &req_head);
} else {
/* retransmit it */
/* Stop waiting for the timeout. No need to do this in
* request_finished; that one already deletes the timeout event.
* XXXX021 port this change to libevent. */
del_timeout_event(req);
CLEAR(&req->timeout_event);
evdns_request_transmit(req);
}
}