diff --git a/include/patty/ax25/sock.h b/include/patty/ax25/sock.h index bb72107..c3507a9 100644 --- a/include/patty/ax25/sock.h +++ b/include/patty/ax25/sock.h @@ -139,8 +139,6 @@ ssize_t patty_ax25_sock_send_srej(patty_ax25_sock *sock, ssize_t patty_ax25_sock_send_sabm(patty_ax25_sock *sock, int pf); -ssize_t patty_ax25_sock_send_sabme(patty_ax25_sock *sock, int pf); - ssize_t patty_ax25_sock_send_disc(patty_ax25_sock *sock, int pf); ssize_t patty_ax25_sock_send_xid(patty_ax25_sock *sock, diff --git a/src/server.c b/src/server.c index 6afffe2..ee697f0 100644 --- a/src/server.c +++ b/src/server.c @@ -1434,13 +1434,10 @@ static int handle_xid(patty_ax25_server *server, */ if (params.hdlc & PATTY_AX25_PARAM_HDLC_MODULO_128) { remote->mode = PATTY_AX25_SOCK_SABME; - - return patty_ax25_sock_send_sabme(remote, PATTY_AX25_FRAME_POLL); - } else { - remote->mode = PATTY_AX25_SOCK_SABM; - - return patty_ax25_sock_send_sabm(remote, PATTY_AX25_FRAME_POLL); } + + + return patty_ax25_sock_send_sabm(remote, PATTY_AX25_FRAME_POLL); } /* diff --git a/src/sock.c b/src/sock.c index 970040c..fc4c882 100644 --- a/src/sock.c +++ b/src/sock.c @@ -538,17 +538,13 @@ ssize_t patty_ax25_sock_send_srej(patty_ax25_sock *sock, } ssize_t patty_ax25_sock_send_sabm(patty_ax25_sock *sock, int pf) { - return patty_ax25_sock_send(sock, - PATTY_AX25_FRAME_COMMAND, - control_u(PATTY_AX25_FRAME_SABM, pf), - NULL, - 0); -} + enum patty_ax25_frame_type type = (sock->mode == PATTY_AX25_SOCK_SABME)? + PATTY_AX25_FRAME_SABME: + PATTY_AX25_FRAME_SABM; -ssize_t patty_ax25_sock_send_sabme(patty_ax25_sock *sock, int pf) { return patty_ax25_sock_send(sock, PATTY_AX25_FRAME_COMMAND, - control_u(PATTY_AX25_FRAME_SABME, pf), + control_u(type, pf), NULL, 0); }