summaryrefslogtreecommitdiff
path: root/accel-pppd/ppp/ppp_ccp.c
diff options
context:
space:
mode:
authorKozlov Dmitry <xeb@mail.ru>2012-02-10 13:40:58 +0400
committerKozlov Dmitry <xeb@mail.ru>2012-02-10 13:40:58 +0400
commit2f1e0f49f260e5a5db71087d7d01842315ecb5ad (patch)
tree9d2353dac2e1c1b5b3a959bee65a1a1ffe854dac /accel-pppd/ppp/ppp_ccp.c
parent211f028919138cd2c6e3ddfb1fd8221a1273d894 (diff)
downloadaccel-ppp-2f1e0f49f260e5a5db71087d7d01842315ecb5ad.tar.gz
accel-ppp-2f1e0f49f260e5a5db71087d7d01842315ecb5ad.zip
ppp: terminate session if mppe=require and client closes CCP
Diffstat (limited to 'accel-pppd/ppp/ppp_ccp.c')
-rw-r--r--accel-pppd/ppp/ppp_ccp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/accel-pppd/ppp/ppp_ccp.c b/accel-pppd/ppp/ppp_ccp.c
index 0814ace9..ee32fbcd 100644
--- a/accel-pppd/ppp/ppp_ccp.c
+++ b/accel-pppd/ppp/ppp_ccp.c
@@ -728,6 +728,11 @@ static void ccp_recv_proto_rej(struct ppp_handler_t *h)
{
struct ppp_ccp_t *ccp = container_of(h, typeof(*ccp), hnd);
+ if (!ccp->ld.passive) {
+ ppp_terminate(ccp->ppp, TERM_USER_ERROR, 0);
+ return;
+ }
+
if (ccp->fsm.fsm_state == FSM_Initial || ccp->fsm.fsm_state == FSM_Closed)
return;