mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-12 05:48:51 -04:00
Merge remote-tracking branch 'origin/patches-2.0'
This commit is contained in:
commit
b163fdaad1
19
evdns.c
19
evdns.c
@ -3973,6 +3973,10 @@ evdns_nameserver_free(struct nameserver *server)
|
||||
event_debug_unassign(&server->event);
|
||||
if (server->state == 0)
|
||||
(void) event_del(&server->timeout_event);
|
||||
if (server->probe_request) {
|
||||
evdns_cancel_request(server->base, server->probe_request);
|
||||
server->probe_request = NULL;
|
||||
}
|
||||
event_debug_unassign(&server->timeout_event);
|
||||
mm_free(server);
|
||||
}
|
||||
@ -3988,13 +3992,6 @@ evdns_base_free_and_unlock(struct evdns_base *base, int fail_requests)
|
||||
|
||||
/* TODO(nickm) we might need to refcount here. */
|
||||
|
||||
for (i = 0; i < base->n_req_heads; ++i) {
|
||||
while (base->req_heads[i]) {
|
||||
if (fail_requests)
|
||||
reply_schedule_callback(base->req_heads[i], 0, DNS_ERR_SHUTDOWN, NULL);
|
||||
request_finished(base->req_heads[i], &REQ_HEAD(base, base->req_heads[i]->trans_id), 1);
|
||||
}
|
||||
}
|
||||
for (server = base->server_head; server; server = server_next) {
|
||||
server_next = server->next;
|
||||
evdns_nameserver_free(server);
|
||||
@ -4003,6 +4000,14 @@ evdns_base_free_and_unlock(struct evdns_base *base, int fail_requests)
|
||||
}
|
||||
base->server_head = NULL;
|
||||
base->global_good_nameservers = 0;
|
||||
|
||||
for (i = 0; i < base->n_req_heads; ++i) {
|
||||
while (base->req_heads[i]) {
|
||||
if (fail_requests)
|
||||
reply_schedule_callback(base->req_heads[i], 0, DNS_ERR_SHUTDOWN, NULL);
|
||||
request_finished(base->req_heads[i], &REQ_HEAD(base, base->req_heads[i]->trans_id), 1);
|
||||
}
|
||||
}
|
||||
while (base->req_waiting_head) {
|
||||
if (fail_requests)
|
||||
reply_schedule_callback(base->req_waiting_head, 0, DNS_ERR_SHUTDOWN, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user