mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
Call the isc__nm_failed_connect_cb() early when shutting down
When shutting down, calling the isc__nm_failed_connect_cb() was delayed until the connect callback would be called. It turned out that the connect callback might not get called at all when the socket is being shut down. Call the failed_connect_cb() directly in the tlsdns_shutdown() instead of waiting for the connect callback to call it.
This commit is contained in:
@@ -760,7 +760,7 @@ isc__nm_tlsdns_failed_read_cb(isc_nmsocket_t *sock, isc_result_t result) {
|
||||
isc__nmsocket_timer_stop(sock);
|
||||
isc__nm_stop_reading(sock);
|
||||
|
||||
if (sock->tls.pending_req) {
|
||||
if (sock->tls.pending_req != NULL) {
|
||||
isc__nm_uvreq_t *req = sock->tls.pending_req;
|
||||
sock->tls.pending_req = NULL;
|
||||
isc__nm_failed_connect_cb(sock, req, ISC_R_CANCELED);
|
||||
@@ -1835,16 +1835,16 @@ isc__nm_tlsdns_shutdown(isc_nmsocket_t *sock) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (atomic_load(&sock->connecting) || sock->accepting) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (sock->tls.pending_req) {
|
||||
if (sock->tls.pending_req != NULL) {
|
||||
isc__nm_uvreq_t *req = sock->tls.pending_req;
|
||||
sock->tls.pending_req = NULL;
|
||||
isc__nm_failed_connect_cb(sock, req, ISC_R_CANCELED);
|
||||
}
|
||||
|
||||
if (atomic_load(&sock->connecting) || sock->accepting) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (sock->statichandle) {
|
||||
isc__nm_failed_read_cb(sock, ISC_R_CANCELED);
|
||||
return;
|
||||
|
Reference in New Issue
Block a user