diff --git a/src/sock.c b/src/sock.c index 55471e1..1c87d60 100644 --- a/src/sock.c +++ b/src/sock.c @@ -186,16 +186,16 @@ error_malloc_sock: } void patty_ax25_sock_destroy(patty_ax25_sock *sock) { - if (sock->fd) { - if (sock->iface) { + if (sock->type == PATTY_AX25_SOCK_RAW) { + if (sock->state == PATTY_AX25_SOCK_PROMISC) { (void)patty_ax25_if_promisc_delete(sock->iface, sock->fd); } - close(sock->fd); + patty_kiss_tnc_destroy(sock->raw); } - if (sock->raw) { - patty_kiss_tnc_destroy(sock->raw); + if (sock->fd > 0) { + (void)close(sock->fd); } free(sock->tx_slots);