diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2010-09-28 02:49:13 +0400 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2010-09-28 02:49:13 +0400 |
commit | b74a11aac87784e2922d621ab27aed3aa6d1db44 (patch) | |
tree | c2e7e60aa9c6de58a4ce655553f7d0e4bb745566 /accel-pptpd/ppp/ppp_fsm.c | |
parent | ea1ac5b186bd377915e9905a17b2e67df6d0bb50 (diff) | |
download | accel-ppp-b74a11aac87784e2922d621ab27aed3aa6d1db44.tar.gz accel-ppp-b74a11aac87784e2922d621ab27aed3aa6d1db44.zip |
bug fixes
Diffstat (limited to 'accel-pptpd/ppp/ppp_fsm.c')
-rw-r--r-- | accel-pptpd/ppp/ppp_fsm.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/accel-pptpd/ppp/ppp_fsm.c b/accel-pptpd/ppp/ppp_fsm.c index 4fc60c21..6efc2e07 100644 --- a/accel-pptpd/ppp/ppp_fsm.c +++ b/accel-pptpd/ppp/ppp_fsm.c @@ -277,11 +277,19 @@ void ppp_fsm_recv_conf_req_rej(struct ppp_fsm_t *layer) --layer->restart_counter; if (layer->send_conf_req) layer->send_conf_req(layer); case FSM_Ack_Sent: + if (++layer->conf_failure == layer->max_failure) { + if (layer->layer_down) layer->layer_down(layer); + return; + } if (layer->send_conf_rej) layer->send_conf_rej(layer); layer->fsm_state=FSM_Req_Sent; break; case FSM_Req_Sent: case FSM_Ack_Rcvd: + if (++layer->conf_failure == layer->max_failure) { + if (layer->layer_down) layer->layer_down(layer); + return; + } if (layer->send_conf_rej) layer->send_conf_rej(layer); break; case FSM_Opened: @@ -342,7 +350,7 @@ void ppp_fsm_recv_conf_rej(struct ppp_fsm_t *layer) break; case FSM_Req_Sent: if (++layer->conf_failure == layer->max_failure) { - ppp_terminate(layer->ppp, 0); + if (layer->layer_down) layer->layer_down(layer); return; } //if (layer->init_req_cnt) layer->init_req_cnt(layer); |