mirror of
https://github.com/libevent/libevent.git
synced 2025-01-31 09:12:55 +08:00
Merge remote-tracking branch 'origin/pr/186'
This commit is contained in:
commit
4f360f89ca
5
evdns.c
5
evdns.c
@ -2175,7 +2175,10 @@ evdns_request_timeout_callback(evutil_socket_t fd, short events, void *arg) {
|
|||||||
log(EVDNS_LOG_DEBUG, "Giving up on request %p; tx_count==%d",
|
log(EVDNS_LOG_DEBUG, "Giving up on request %p; tx_count==%d",
|
||||||
arg, req->tx_count);
|
arg, req->tx_count);
|
||||||
reply_schedule_callback(req, 0, DNS_ERR_TIMEOUT, NULL);
|
reply_schedule_callback(req, 0, DNS_ERR_TIMEOUT, NULL);
|
||||||
|
|
||||||
|
struct nameserver *ns = req->ns;
|
||||||
request_finished(req, &REQ_HEAD(req->base, req->trans_id), 1);
|
request_finished(req, &REQ_HEAD(req->base, req->trans_id), 1);
|
||||||
|
nameserver_failed(ns, "request timed out.");
|
||||||
} else {
|
} else {
|
||||||
/* retransmit it */
|
/* retransmit it */
|
||||||
log(EVDNS_LOG_DEBUG, "Retransmitting request %p; tx_count==%d",
|
log(EVDNS_LOG_DEBUG, "Retransmitting request %p; tx_count==%d",
|
||||||
@ -2183,13 +2186,13 @@ evdns_request_timeout_callback(evutil_socket_t fd, short events, void *arg) {
|
|||||||
(void) evtimer_del(&req->timeout_event);
|
(void) evtimer_del(&req->timeout_event);
|
||||||
request_swap_ns(req, nameserver_pick(base));
|
request_swap_ns(req, nameserver_pick(base));
|
||||||
evdns_request_transmit(req);
|
evdns_request_transmit(req);
|
||||||
}
|
|
||||||
|
|
||||||
req->ns->timedout++;
|
req->ns->timedout++;
|
||||||
if (req->ns->timedout > req->base->global_max_nameserver_timeout) {
|
if (req->ns->timedout > req->base->global_max_nameserver_timeout) {
|
||||||
req->ns->timedout = 0;
|
req->ns->timedout = 0;
|
||||||
nameserver_failed(req->ns, "request timed out.");
|
nameserver_failed(req->ns, "request timed out.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EVDNS_UNLOCK(base);
|
EVDNS_UNLOCK(base);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user