diff --git a/src/server.c b/src/server.c index 7b54005..afae5bc 100644 --- a/src/server.c +++ b/src/server.c @@ -290,6 +290,8 @@ static int sock_delete_remote(patty_ax25_server *server, static int sock_shutdown(patty_ax25_server *server, patty_ax25_sock *sock) { + int ret; + fd_clear(server, sock->fd); if (sock->type != PATTY_AX25_SOCK_STREAM) { @@ -302,7 +304,11 @@ static int sock_shutdown(patty_ax25_server *server, sock->state = PATTY_AX25_SOCK_PENDING_DISCONNECT; - return patty_ax25_sock_send_disc(sock, PATTY_AX25_FRAME_POLL); + ret = patty_ax25_sock_send_disc(sock, PATTY_AX25_FRAME_POLL); + + patty_timer_start(&sock->timer_t1, sock->n_ack); + + return ret; } static int sock_save(patty_ax25_server *server,