summaryrefslogtreecommitdiff
path: root/accel-pppd/ppp/ppp_ipv6cp.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_ipv6cp.c
parent946bc48f3c060161353aceb96166820be80dd846 (diff)
downloadaccel-ppp-xebd-00120e890feef1afc05ac492dfdba91eaf33737d.tar.gz
accel-ppp-xebd-00120e890feef1afc05ac492dfdba91eaf33737d.zip
ppp: fix optional layers startup issue
Diffstat (limited to 'accel-pppd/ppp/ppp_ipv6cp.c')
-rw-r--r--accel-pppd/ppp/ppp_ipv6cp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/accel-pppd/ppp/ppp_ipv6cp.c b/accel-pppd/ppp/ppp_ipv6cp.c
index 554eacb..1a9a334 100644
--- a/accel-pppd/ppp/ppp_ipv6cp.c
+++ b/accel-pppd/ppp/ppp_ipv6cp.c
@@ -118,7 +118,8 @@ static void ipv6cp_start_timeout(struct triton_timer_t *t)
triton_timer_del(t);
- ppp_terminate(ipv6cp->ppp, TERM_USER_ERROR, 0);
+ if (ipv6cp->ppp->state == PPP_STATE_STARTING)
+ ppp_terminate(ipv6cp->ppp, TERM_USER_ERROR, 0);
}
int ipv6cp_layer_start(struct ppp_layer_data_t *ld)
@@ -202,7 +203,7 @@ static void ipv6cp_layer_finished(struct ppp_fsm_t *fsm)
if (conf_ipv6 == IPV6_REQUIRE)
ppp_terminate(ipv6cp->ppp, TERM_USER_ERROR, 0);
else
- ipv6cp->ld.passive = 1;
+ ppp_layer_passive(ipv6cp->ppp, &ipv6cp->ld);
} else if (!ipv6cp->ppp->terminating)
ppp_terminate(ipv6cp->ppp, TERM_USER_ERROR, 0);
}