diff --git a/src/sock.c b/src/sock.c index e5156b5..a60c406 100644 --- a/src/sock.c +++ b/src/sock.c @@ -363,6 +363,18 @@ ssize_t patty_ax25_sock_send(patty_ax25_sock *sock, uint8_t *buf = PATTY_AX25_FRAME_CONTROL_U(control)? sock->tx_buf: tx_slot(sock, sock->seq_send); + if (sock->iface == NULL) { + errno = ENETDOWN; + + goto error_noif; + } + + if (sock->remote.callsign[0] == '\0') { + errno = EBADF; + + goto error_nopeer; + } + if (toobig(sock, infolen)) { goto error_toobig; } @@ -393,6 +405,8 @@ ssize_t patty_ax25_sock_send(patty_ax25_sock *sock, error_encode_address: error_toobig: +error_nopeer: +error_noif: return -1; }