diff options
Diffstat (limited to 'libhw/host_net.c')
-rw-r--r-- | libhw/host_net.c | 5 |
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() *****************************************************************/ |