diff --git a/src/server.c b/src/server.c index 1639395..e8b0918 100644 --- a/src/server.c +++ b/src/server.c @@ -1528,6 +1528,15 @@ static int handle_i(patty_ax25_server *server, patty_timer_start(&sock->timer_t2, PATTY_AX25_SOCK_DEFAULT_DELAY); patty_timer_start(&sock->timer_t3, PATTY_AX25_SOCK_DEFAULT_KEEPALIVE); + /* + * AX.25 v2.2 Section 6.2 "Poll/Final (P/F) Bit Procedures" + */ + if (frame->pf == 1) { + return FD_ISSET(sock->fd, &server->fds_watch)? + patty_ax25_sock_send_rr(sock, PATTY_AX25_FRAME_RESPONSE, 1): + patty_ax25_sock_send_rnr(sock, PATTY_AX25_FRAME_RESPONSE, 1); + } + return 0; error_handle_segment: