diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2010-12-24 22:51:34 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2010-12-24 22:51:34 +0300 |
commit | 00b656fa15b7ff7ee0537dc92851d1185e5f5622 (patch) | |
tree | fd10c8d67fa27214f83631003d75254feb5c52ed | |
parent | 88db624127e11d4a1d1000a5ebcfb6757a05f3a4 (diff) | |
download | accel-ppp-00b656fa15b7ff7ee0537dc92851d1185e5f5622.tar.gz accel-ppp-00b656fa15b7ff7ee0537dc92851d1185e5f5622.zip |
ppp: fix session hangup
-rw-r--r-- | accel-pptpd/ppp/ppp_ccp.c | 2 | ||||
-rw-r--r-- | accel-pptpd/ppp/ppp_ipcp.c | 2 | ||||
-rw-r--r-- | accel-pptpd/ppp/ppp_lcp.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/accel-pptpd/ppp/ppp_ccp.c b/accel-pptpd/ppp/ppp_ccp.c index 7a3012d..e5b183d 100644 --- a/accel-pptpd/ppp/ppp_ccp.c +++ b/accel-pptpd/ppp/ppp_ccp.c @@ -610,7 +610,7 @@ static void ccp_recv(struct ppp_handler_t*h) struct ppp_ccp_t *ccp = container_of(h, typeof(*ccp), hnd); int r; - if (ccp->fsm.fsm_state == FSM_Initial || ccp->fsm.fsm_state == FSM_Closed) { + if (ccp->fsm.fsm_state == FSM_Initial || ccp->fsm.fsm_state == FSM_Closed || ccp->ppp->terminating) { if (conf_ppp_verbose) log_ppp_warn("CCP: discarding packet\n"); if (ccp->fsm.fsm_state == FSM_Closed || !conf_ccp) diff --git a/accel-pptpd/ppp/ppp_ipcp.c b/accel-pptpd/ppp/ppp_ipcp.c index 88ac575..7cdcdbc 100644 --- a/accel-pptpd/ppp/ppp_ipcp.c +++ b/accel-pptpd/ppp/ppp_ipcp.c @@ -558,7 +558,7 @@ static void ipcp_recv(struct ppp_handler_t*h) struct ppp_ipcp_t *ipcp = container_of(h, typeof(*ipcp), hnd); int r; - if (ipcp->fsm.fsm_state == FSM_Initial || ipcp->fsm.fsm_state == FSM_Closed) { + if (ipcp->fsm.fsm_state == FSM_Initial || ipcp->fsm.fsm_state == FSM_Closed || ipcp->ppp->terminating) { if (conf_ppp_verbose) log_ppp_warn("IPCP: discarding packet\n"); return; diff --git a/accel-pptpd/ppp/ppp_lcp.c b/accel-pptpd/ppp/ppp_lcp.c index f433ab8..0b5a517 100644 --- a/accel-pptpd/ppp/ppp_lcp.c +++ b/accel-pptpd/ppp/ppp_lcp.c @@ -698,7 +698,7 @@ static void lcp_recv(struct ppp_handler_t*h) int r; char *term_msg; - if (lcp->fsm.fsm_state == FSM_Initial || lcp->fsm.fsm_state == FSM_Closed) { + if (lcp->fsm.fsm_state == FSM_Initial || lcp->fsm.fsm_state == FSM_Closed || lcp->ppp->terminating) { /*if (conf_ppp_verbose) log_ppp_warn("LCP: discaring packet\n"); lcp_send_proto_rej(ccp->ppp, htons(PPP_CCP));*/ |