fixup! fixup! WiP: shutdown active sockets when shutting down netmgr

This commit is contained in:
Evan Hunt
2019-11-22 11:09:45 -08:00
parent 7c91b58d40
commit 140a24c50e
3 changed files with 17 additions and 4 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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);
}