fixup! fixup! WiP: shutdown active sockets when shutting down netmgr
This commit is contained in:
@@ -551,6 +551,12 @@ isc__nm_tcp_close(isc_nmsocket_t *sock);
|
||||
* Close a TCP socket.
|
||||
*/
|
||||
|
||||
void
|
||||
isc__nm_tcp_shutdown(isc_nmsocket_t *sock);
|
||||
/*%<
|
||||
* Called on shutdown to close and clean up a listening TCP socket.
|
||||
*/
|
||||
|
||||
void
|
||||
isc__nm_async_tcpconnect(isc__networker_t *worker, isc__netievent_t *ievent0);
|
||||
void
|
||||
|
||||
@@ -1185,13 +1185,13 @@ isc__nm_async_closecb(isc__networker_t *worker, isc__netievent_t *ievent0) {
|
||||
|
||||
static void
|
||||
shutdown_walk_cb(uv_handle_t *handle, void *arg) {
|
||||
isc_nmsocket_t *sock = NULL;
|
||||
|
||||
UNUSED(arg);
|
||||
isc_nmsocket_t *sock = (isc_nmsocket_t*) handle->data;
|
||||
|
||||
switch(handle->type) {
|
||||
case UV_TCP:
|
||||
INSIST(VALID_NMSOCK(sock));
|
||||
/* XXX TODO this should be in tcp.c, not here */
|
||||
sock->rcb.recv(sock->tcphandle, NULL, sock->rcbarg);
|
||||
isc__nm_tcp_shutdown((isc_nmsocket_t *) handle->data);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -688,3 +688,10 @@ isc__nm_async_tcpclose(isc__networker_t *worker, isc__netievent_t *ievent0) {
|
||||
|
||||
tcp_close_direct(ievent->sock);
|
||||
}
|
||||
|
||||
void
|
||||
isc__nm_tcp_shutdown(isc_nmsocket_t *sock) {
|
||||
REQUIRE(VALID_NMSOCK(sock));
|
||||
|
||||
sock->rcb.recv(sock->tcphandle, NULL, sock->rcbarg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user