mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-27 11:10:22 -04:00
Merge branch '3177-add-missing-isc_nm_tcpsocket-to-isc__nmsocket_reset-v9_16' into 'v9_16'
Handle TCP sockets in isc__nmsocket_reset() See merge request isc-projects/bind9!5912
This commit is contained in:
commit
98183ef28b
1 changed files with 33 additions and 5 deletions
|
|
@ -218,6 +218,9 @@ isc__nm_work_cb(uv_work_t *req);
|
|||
static void
|
||||
isc__nm_after_work_cb(uv_work_t *req, int status);
|
||||
|
||||
void
|
||||
isc__nmsocket_reset(isc_nmsocket_t *sock);
|
||||
|
||||
/*%<
|
||||
* Issue a 'handle closed' callback on the socket.
|
||||
*/
|
||||
|
|
@ -1942,11 +1945,7 @@ isc__nmsocket_writetimeout_cb(uv_timer_t *timer) {
|
|||
int r = uv_timer_stop(&sock->write_timer);
|
||||
UV_RUNTIME_CHECK(uv_timer_stop, r);
|
||||
|
||||
/* The shutdown will be handled in the respective close functions */
|
||||
r = uv_tcp_close_reset(&sock->uv_handle.tcp, NULL);
|
||||
UV_RUNTIME_CHECK(uv_tcp_close_reset, r);
|
||||
|
||||
isc__nmsocket_shutdown(sock);
|
||||
isc__nmsocket_reset(sock);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -2674,6 +2673,35 @@ isc__nm_async_detach(isc__networker_t *worker, isc__netievent_t *ev0) {
|
|||
nmhandle_detach_cb(&ievent->handle FLARG_PASS);
|
||||
}
|
||||
|
||||
void
|
||||
isc__nmsocket_reset(isc_nmsocket_t *sock) {
|
||||
REQUIRE(VALID_NMSOCK(sock));
|
||||
|
||||
switch (sock->type) {
|
||||
case isc_nm_tcpsocket:
|
||||
case isc_nm_tcpdnssocket:
|
||||
/*
|
||||
* This can be called from the TCP write timeout.
|
||||
*/
|
||||
REQUIRE(sock->parent == NULL);
|
||||
break;
|
||||
default:
|
||||
INSIST(0);
|
||||
ISC_UNREACHABLE();
|
||||
break;
|
||||
}
|
||||
|
||||
if (!uv_is_closing(&sock->uv_handle.handle)) {
|
||||
/*
|
||||
* The real shutdown will be handled in the respective
|
||||
* close functions.
|
||||
*/
|
||||
int r = uv_tcp_close_reset(&sock->uv_handle.tcp, NULL);
|
||||
UV_RUNTIME_CHECK(uv_tcp_close_reset, r);
|
||||
}
|
||||
isc__nmsocket_shutdown(sock);
|
||||
}
|
||||
|
||||
void
|
||||
isc__nmsocket_shutdown(isc_nmsocket_t *sock) {
|
||||
REQUIRE(VALID_NMSOCK(sock));
|
||||
|
|
|
|||
Loading…
Reference in a new issue