diff options
author | Kozlov Dmitry <dima@server> | 2010-10-05 14:18:52 +0400 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-10-05 14:18:52 +0400 |
commit | 7f16563bd5a4ef21b970e8dcbab0e5cbe02bfe97 (patch) | |
tree | 573a053112cb4c4b0980d0688a2fe63ef79fd1c0 /accel-pptpd/ppp/ppp_ipcp.c | |
parent | c9e6b5f6b41163ed363e2ad0a1fc354607cb402e (diff) | |
download | accel-ppp-7f16563bd5a4ef21b970e8dcbab0e5cbe02bfe97.tar.gz accel-ppp-7f16563bd5a4ef21b970e8dcbab0e5cbe02bfe97.zip |
bug fixes
Diffstat (limited to 'accel-pptpd/ppp/ppp_ipcp.c')
-rw-r--r-- | accel-pptpd/ppp/ppp_ipcp.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/accel-pptpd/ppp/ppp_ipcp.c b/accel-pptpd/ppp/ppp_ipcp.c index 795cbc0e..f8d0a3f5 100644 --- a/accel-pptpd/ppp/ppp_ipcp.c +++ b/accel-pptpd/ppp/ppp_ipcp.c @@ -139,7 +139,10 @@ static void ipcp_layer_up(struct ppp_fsm_t *fsm) { struct ppp_ipcp_t *ipcp=container_of(fsm,typeof(*ipcp),fsm); log_ppp_debug("ipcp_layer_started\n"); - ppp_layer_started(ipcp->ppp,&ipcp->ld); + if (!ipcp->started) { + ipcp->started = 1; + ppp_layer_started(ipcp->ppp,&ipcp->ld); + } } static void ipcp_layer_down(struct ppp_fsm_t *fsm) @@ -147,6 +150,10 @@ static void ipcp_layer_down(struct ppp_fsm_t *fsm) struct ppp_ipcp_t *ipcp=container_of(fsm,typeof(*ipcp),fsm); log_ppp_debug("ipcp_layer_finished\n"); ppp_layer_finished(ipcp->ppp,&ipcp->ld); + if (ipcp->started) + ipcp->started = 0; + else + ppp_terminate(ipcp->ppp, 1); } static void print_ropt(struct recv_opt_t *ropt) |