diff --git a/include/patty/ax25/sock.h b/include/patty/ax25/sock.h index a003f29..9b843ac 100644 --- a/include/patty/ax25/sock.h +++ b/include/patty/ax25/sock.h @@ -130,7 +130,8 @@ 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); +ssize_t patty_ax25_sock_send_xid(patty_ax25_sock *sock, + enum patty_ax25_frame_cr cr); ssize_t patty_ax25_sock_write(patty_ax25_sock *sock, void *buf, diff --git a/src/server.c b/src/server.c index 68fe308..305dd51 100644 --- a/src/server.c +++ b/src/server.c @@ -772,7 +772,7 @@ static int server_connect(patty_ax25_server *server, * Send an XID frame, to attempt to negotiate AX.25 v2.2 and its default * parameters. */ - if (patty_ax25_sock_send_xid(sock) < 0) { + if (patty_ax25_sock_send_xid(sock, PATTY_AX25_FRAME_COMMAND) < 0) { response.ret = -1; response.eno = errno; @@ -1396,7 +1396,7 @@ static int handle_xid(patty_ax25_server *server, goto error_sock_save_by_fd; } - return patty_ax25_sock_send_xid(remote); + return patty_ax25_sock_send_xid(remote, PATTY_AX25_FRAME_RESPONSE); } return reply_dm(iface, frame, PATTY_AX25_FRAME_FINAL); diff --git a/src/sock.c b/src/sock.c index 754fb82..c6341d3 100644 --- a/src/sock.c +++ b/src/sock.c @@ -497,7 +497,8 @@ ssize_t patty_ax25_sock_send_disc(patty_ax25_sock *sock, int pf) { 0); } -ssize_t patty_ax25_sock_send_xid(patty_ax25_sock *sock) { +ssize_t patty_ax25_sock_send_xid(patty_ax25_sock *sock, + enum patty_ax25_frame_cr cr) { patty_ax25_params params; char buf[256]; @@ -540,7 +541,7 @@ ssize_t patty_ax25_sock_send_xid(patty_ax25_sock *sock) { } return patty_ax25_sock_send(sock, - PATTY_AX25_FRAME_COMMAND, + cr, control_u(PATTY_AX25_FRAME_XID, 0), buf, encoded);