diff options
author | Vladislav Grishenko <themiron@mail.ru> | 2020-06-08 19:04:51 +0500 |
---|---|---|
committer | Vladislav Grishenko <themiron@mail.ru> | 2020-06-08 19:04:51 +0500 |
commit | d8c4209188481c3836d87266f5cc6e37661df8fd (patch) | |
tree | 65fcb005dc08acb9f8b23526b051f7da0ac60999 /accel-pppd/ctrl/ipoe/ipoe.c | |
parent | 334bb0c88c0ae223ab42f4a0ebbb208981519c19 (diff) | |
download | accel-ppp-d8c4209188481c3836d87266f5cc6e37661df8fd.tar.gz accel-ppp-d8c4209188481c3836d87266f5cc6e37661df8fd.zip |
ipoe: gracefuly terminate denied sessions
Diffstat (limited to 'accel-pppd/ctrl/ipoe/ipoe.c')
-rw-r--r-- | accel-pppd/ctrl/ipoe/ipoe.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c index a4fa151a..97c5380b 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.c +++ b/accel-pppd/ctrl/ipoe/ipoe.c @@ -621,7 +621,10 @@ static void auth_result(struct ipoe_session *ses, int r) ses->l4_redirect_timer.expire_tv.tv_sec = conf_l4_redirect_on_reject; triton_timer_add(&ses->ctx, &ses->l4_redirect_timer, 0); - ap_session_set_username(&ses->ses, username); + if (ap_session_set_username(&ses->ses, username)) { + ap_session_terminate(&ses->ses, TERM_NAS_REQUEST, 1); + return; + } log_ppp_info1("%s: authentication failed\n", ses->ses.username); log_ppp_info1("%s: start temporary session (l4-redirect)\n", ses->ses.username); goto cont; @@ -639,10 +642,13 @@ static void auth_result(struct ipoe_session *ses, int r) return; } - ap_session_set_username(&ses->ses, username); + if (ap_session_set_username(&ses->ses, username)) { + ap_session_terminate(&ses->ses, TERM_NAS_REQUEST, 1); + return; + } log_ppp_info1("%s: authentication succeeded\n", ses->ses.username); - if (conf_check_exists && check_exists(ses, ses->yiaddr)){ + if (conf_check_exists && check_exists(ses, ses->yiaddr)) { ap_session_terminate(&ses->ses, TERM_NAS_REQUEST, 1); return; } |