diff options
-rw-r--r-- | accel-pppd/ppp/ppp_lcp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/accel-pppd/ppp/ppp_lcp.c b/accel-pppd/ppp/ppp_lcp.c index 107e29e5..635ce9c0 100644 --- a/accel-pppd/ppp/ppp_lcp.c +++ b/accel-pppd/ppp/ppp_lcp.c @@ -817,10 +817,11 @@ static void lcp_recv(struct ppp_handler_t*h) case CONFACK: if (lcp_recv_conf_ack(lcp,(uint8_t*)(hdr + 1), ntohs(hdr->len) - PPP_HDRLEN)) ap_session_terminate(&lcp->ppp->ses, TERM_USER_ERROR, 0); - else + else { if (lcp->fsm.recv_id != lcp->fsm.id) break; ppp_fsm_recv_conf_ack(&lcp->fsm); + } break; case CONFNAK: lcp_recv_conf_nak(lcp, (uint8_t*)(hdr + 1), ntohs(hdr->len) - PPP_HDRLEN); @@ -831,10 +832,11 @@ static void lcp_recv(struct ppp_handler_t*h) case CONFREJ: if (lcp_recv_conf_rej(lcp,(uint8_t*)(hdr + 1), ntohs(hdr->len) - PPP_HDRLEN)) ap_session_terminate(&lcp->ppp->ses, TERM_USER_ERROR, 0); - else + else { if (lcp->fsm.recv_id != lcp->fsm.id) break; ppp_fsm_recv_conf_rej(&lcp->fsm); + } break; case TERMREQ: if (conf_ppp_verbose) |