Implement support for handling SABME frames

This commit is contained in:
XANTRONIX Development 2020-07-14 00:36:05 -04:00 committed by XANTRONIX Industrial
parent 905d5b117c
commit 359742f949

View file

@ -1074,9 +1074,11 @@ static int handle_sabm(patty_ax25_server *server,
} }
remote->status = PATTY_AX25_SOCK_ESTABLISHED; remote->status = PATTY_AX25_SOCK_ESTABLISHED;
remote->mode = PATTY_AX25_SOCK_SABM;
remote->iface = iface; remote->iface = iface;
remote->mode = (frame->type == PATTY_AX25_FRAME_SABM)?
PATTY_AX25_SOCK_SABM: PATTY_AX25_SOCK_SABME;
save_reply_addr(remote, frame); save_reply_addr(remote, frame);
if (sock_save_by_fd(server->socks_by_fd, remote) < 0) { if (sock_save_by_fd(server->socks_by_fd, remote) < 0) {
@ -1316,9 +1318,10 @@ static int handle_frame(patty_ax25_server *server,
switch (frame.type) { switch (frame.type) {
case PATTY_AX25_FRAME_I: return handle_i(server, iface, sock, &frame); case PATTY_AX25_FRAME_I: return handle_i(server, iface, sock, &frame);
case PATTY_AX25_FRAME_SABM: return handle_sabm(server, iface, &frame);
case PATTY_AX25_FRAME_UA: return handle_ua(server, iface, &frame); case PATTY_AX25_FRAME_UA: return handle_ua(server, iface, &frame);
case PATTY_AX25_FRAME_DM: return handle_dm(server, iface, &frame); case PATTY_AX25_FRAME_DM: return handle_dm(server, iface, &frame);
case PATTY_AX25_FRAME_SABM:
case PATTY_AX25_FRAME_SABME: return handle_sabm(server, iface, &frame);
case PATTY_AX25_FRAME_DISC: return handle_disc(server, iface, &frame); case PATTY_AX25_FRAME_DISC: return handle_disc(server, iface, &frame);
case PATTY_AX25_FRAME_FRMR: return 0; case PATTY_AX25_FRAME_FRMR: return 0;