Reply to I frames with REJ only with P/F bit set
This commit is contained in:
parent
34353fa1d9
commit
6df612b910
1 changed files with 4 additions and 9 deletions
13
src/server.c
13
src/server.c
|
@ -1225,24 +1225,19 @@ static int handle_i(patty_ax25_server *server,
|
||||||
return frame->pf? reply_dm(iface, frame, PATTY_AX25_FRAME_FINAL): 0;
|
return frame->pf? reply_dm(iface, frame, PATTY_AX25_FRAME_FINAL): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* TODO: Validate RX and TX sequence numbers
|
|
||||||
*/
|
|
||||||
if (sock->seq_recv == frame->ns) {
|
if (sock->seq_recv == frame->ns) {
|
||||||
patty_ax25_sock_seq_recv_incr(sock);
|
patty_ax25_sock_seq_recv_incr(sock);
|
||||||
} else {
|
} else {
|
||||||
return patty_ax25_sock_send_rej(sock, PATTY_AX25_FRAME_RESPONSE);
|
return frame->pf?
|
||||||
|
patty_ax25_sock_send_rej(sock, PATTY_AX25_FRAME_RESPONSE): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (write(sock->fd, frame->info, frame->infolen) < 0) {
|
if (write(sock->fd, frame->info, frame->infolen) < 0) {
|
||||||
goto error_write;
|
goto error_write;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frame->pf) {
|
return frame->pf?
|
||||||
return patty_ax25_sock_send_rr(sock, PATTY_AX25_FRAME_RESPONSE);
|
patty_ax25_sock_send_rr(sock, PATTY_AX25_FRAME_RESPONSE): 0;
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
error_write:
|
error_write:
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue