summaryrefslogtreecommitdiff
path: root/libhw/host_net.c
diff options
context:
space:
mode:
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() *****************************************************************/