summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl/ipoe
diff options
context:
space:
mode:
authorVladislav Grishenko <themiron@mail.ru>2020-06-08 19:04:51 +0500
committerVladislav Grishenko <themiron@mail.ru>2020-06-08 19:04:51 +0500
commitd8c4209188481c3836d87266f5cc6e37661df8fd (patch)
tree65fcb005dc08acb9f8b23526b051f7da0ac60999 /accel-pppd/ctrl/ipoe
parent334bb0c88c0ae223ab42f4a0ebbb208981519c19 (diff)
downloadaccel-ppp-xebd-d8c4209188481c3836d87266f5cc6e37661df8fd.tar.gz
accel-ppp-xebd-d8c4209188481c3836d87266f5cc6e37661df8fd.zip
ipoe: gracefuly terminate denied sessions
Diffstat (limited to 'accel-pppd/ctrl/ipoe')
-rw-r--r--accel-pppd/ctrl/ipoe/ipoe.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c
index a4fa151..97c5380 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;
}