diff --git a/src/server.c b/src/server.c index 92e19f3..ef62c64 100644 --- a/src/server.c +++ b/src/server.c @@ -1847,7 +1847,17 @@ static int handle_sock_raw(patty_ax25_server *server, if ((len = patty_ax25_sock_recv(sock, sock->iface->tx_buf, sock->iface->mtu)) < 0) { - goto error_io; + if (errno == EIO) { + (void)sock_close(server, sock); + + break; + } else { + goto error_io; + } + } else if (len == 0) { + (void)sock_close(server, sock); + + break; } if (patty_ax25_sock_send(sock, sock->iface->tx_buf, len) < 0) {