diff --git a/src/server.c b/src/server.c index 4e8f4bc..59c875e 100644 --- a/src/server.c +++ b/src/server.c @@ -2088,13 +2088,12 @@ static int handle_sock_dgram(patty_ax25_server *server, (void)sock_close(server, sock); } else if (len > 0) { if (patty_ax25_sock_write(sock, sock->io_buf, len) < 0) { - goto error_sock_write; + (void)sock_close(server, sock); } } return 0; -error_sock_write: error_unknown: return -1; } @@ -2285,17 +2284,16 @@ static int handle_sock(uint32_t key, (void)sock_shutdown(server, sock); } else if (len > 0) { if (patty_ax25_sock_write(sock, sock->io_buf, len) < 0) { - goto error_sock_write; + (void)sock_close(server, sock); + } else { + patty_timer_start(&sock->timer_t1); + patty_timer_stop(&sock->timer_t3); } - - patty_timer_start(&sock->timer_t1); - patty_timer_stop(&sock->timer_t3); } return 0; error_client_by_sock: -error_sock_write: error_sock_resend_pending: error_unknown: return -1;