From d8c4209188481c3836d87266f5cc6e37661df8fd Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Mon, 8 Jun 2020 19:04:51 +0500 Subject: ipoe: gracefuly terminate denied sessions --- accel-pppd/ctrl/ipoe/ipoe.c | 12 +++++++++--- 1 file 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; } -- cgit v1.2.3