diff options
author | Kozlov Dmitry <xeb@mail.ru> | 2012-02-10 13:40:58 +0400 |
---|---|---|
committer | Kozlov Dmitry <xeb@mail.ru> | 2012-02-10 13:40:58 +0400 |
commit | 2f1e0f49f260e5a5db71087d7d01842315ecb5ad (patch) | |
tree | 9d2353dac2e1c1b5b3a959bee65a1a1ffe854dac /accel-pppd/ppp | |
parent | 211f028919138cd2c6e3ddfb1fd8221a1273d894 (diff) | |
download | accel-ppp-2f1e0f49f260e5a5db71087d7d01842315ecb5ad.tar.gz accel-ppp-2f1e0f49f260e5a5db71087d7d01842315ecb5ad.zip |
ppp: terminate session if mppe=require and client closes CCP
Diffstat (limited to 'accel-pppd/ppp')
-rw-r--r-- | accel-pppd/ppp/ppp_ccp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/accel-pppd/ppp/ppp_ccp.c b/accel-pppd/ppp/ppp_ccp.c index 0814ace..ee32fbc 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; |