summaryrefslogtreecommitdiff
path: root/accel-pppd/ppp/ppp_ipcp.c
diff options
context:
space:
mode:
authorKozlov Dmitry <xeb@mail.ru>2011-08-26 23:49:37 +0400
committerKozlov Dmitry <xeb@mail.ru>2011-08-26 23:49:37 +0400
commit00120e890feef1afc05ac492dfdba91eaf33737d (patch)
treef457e35eaa65cd6d0e34a4ca43a3f47f4258457d /accel-pppd/ppp/ppp_ipcp.c
parent946bc48f3c060161353aceb96166820be80dd846 (diff)
downloadaccel-ppp-00120e890feef1afc05ac492dfdba91eaf33737d.tar.gz
accel-ppp-00120e890feef1afc05ac492dfdba91eaf33737d.zip
ppp: fix optional layers startup issue
Diffstat (limited to 'accel-pppd/ppp/ppp_ipcp.c')
-rw-r--r--accel-pppd/ppp/ppp_ipcp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/accel-pppd/ppp/ppp_ipcp.c b/accel-pppd/ppp/ppp_ipcp.c
index 7a424911..3a944169 100644
--- a/accel-pppd/ppp/ppp_ipcp.c
+++ b/accel-pppd/ppp/ppp_ipcp.c
@@ -117,8 +117,9 @@ static void ipcp_start_timeout(struct triton_timer_t *t)
struct ppp_ipcp_t *ipcp = container_of(t, typeof(*ipcp), timeout);
triton_timer_del(t);
-
- ppp_terminate(ipcp->ppp, TERM_USER_ERROR, 0);
+
+ if (ipcp->ppp->state == PPP_STATE_STARTING)
+ ppp_terminate(ipcp->ppp, TERM_USER_ERROR, 0);
}
int ipcp_layer_start(struct ppp_layer_data_t *ld)
@@ -202,7 +203,7 @@ static void ipcp_layer_finished(struct ppp_fsm_t *fsm)
if (conf_ipv4 == IPV4_REQUIRE)
ppp_terminate(ipcp->ppp, TERM_USER_ERROR, 0);
else
- ipcp->ld.passive = 1;
+ ppp_layer_passive(ipcp->ppp, &ipcp->ld);
} else if (!ipcp->ppp->terminating)
ppp_terminate(ipcp->ppp, TERM_USER_ERROR, 0);
}