summaryrefslogtreecommitdiff
path: root/libhw/host_net.c
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-02-04 09:05:14 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-02-04 21:01:49 -0700
commit57d4c9f154cacd5d0dcc2f45033d784b3e0b6734 (patch)
treef96f5c57bbb042b3962bed49853621f6d344de04 /libhw/host_net.c
parent635539cd0da713729ec2852b3691dc9f73734e59 (diff)
lib9p: Test that we can do clean shutdown
Diffstat (limited to 'libhw/host_net.c')
-rw-r--r--libhw/host_net.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libhw/host_net.c b/libhw/host_net.c
index d5a5ad5..bf79480 100644
--- a/libhw/host_net.c
+++ b/libhw/host_net.c
@@ -190,6 +190,9 @@ static implements_net_stream_conn *hostnet_tcplist_accept(implements_net_stream_
if (RUN_PTHREAD(hostnet_pthread_accept, &args))
return NULL;
+ if (ret_connfd < 0)
+ return NULL;
+
listener->active_conn.vtable = &hostnet_tcp_conn_vtable;
listener->active_conn.fd = ret_connfd;
listener->active_conn.read_deadline_ns = 0;
@@ -203,7 +206,7 @@ static int hostnet_tcplist_close(implements_net_stream_listener *_listener) {
VCALL_SELF(struct hostnet_tcp_listener, implements_net_stream_listener, _listener);
assert(listener);
- return hostnet_map_negerrno(close(listener->fd) ? -errno : 0, OP_NONE);
+ return hostnet_map_negerrno(shutdown(listener->fd, SHUT_RDWR) ? -errno : 0, OP_NONE);
}
/* TCP read() *****************************************************************/