summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp/ppp_fsm.c
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2010-09-28 02:49:13 +0400
committerDmitry Kozlov <xeb@mail.ru>2010-09-28 02:49:13 +0400
commitb74a11aac87784e2922d621ab27aed3aa6d1db44 (patch)
treec2e7e60aa9c6de58a4ce655553f7d0e4bb745566 /accel-pptpd/ppp/ppp_fsm.c
parentea1ac5b186bd377915e9905a17b2e67df6d0bb50 (diff)
downloadaccel-ppp-xebd-b74a11aac87784e2922d621ab27aed3aa6d1db44.tar.gz
accel-ppp-xebd-b74a11aac87784e2922d621ab27aed3aa6d1db44.zip
bug fixes
Diffstat (limited to 'accel-pptpd/ppp/ppp_fsm.c')
-rw-r--r--accel-pptpd/ppp/ppp_fsm.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/accel-pptpd/ppp/ppp_fsm.c b/accel-pptpd/ppp/ppp_fsm.c
index 4fc60c2..6efc2e0 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);