diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2016-06-07 20:40:55 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2016-06-07 20:40:55 +0300 |
commit | 429ca0e6188594e5ccbce639d2d22576e5256e62 (patch) | |
tree | 42f87bcc5fdd4a454209326fa38757d6970711d1 /accel-pppd/radius/radius.c | |
parent | d06572417e1e500d7bd56859335d2f7dd0f3fd8f (diff) | |
download | accel-ppp-429ca0e6188594e5ccbce639d2d22576e5256e62.tar.gz accel-ppp-429ca0e6188594e5ccbce639d2d22576e5256e62.zip |
radius: update Session-Timeout by CoA
Diffstat (limited to 'accel-pppd/radius/radius.c')
-rw-r--r-- | accel-pppd/radius/radius.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c index c8eaf953..c5537086 100644 --- a/accel-pppd/radius/radius.c +++ b/accel-pppd/radius/radius.c @@ -369,6 +369,17 @@ static void session_timeout(struct triton_timer_t *t) ap_session_terminate(rpd->ses, TERM_SESSION_TIMEOUT, 0); } +void rad_update_session_timeout(struct radius_pd_t *rpd, int timeout) +{ + rpd->session_timeout.expire_tv.tv_sec = timeout; + rpd->session_timeout.expire = session_timeout; + + if (rpd->session_timeout.tpd) + triton_timer_mod(&rpd->session_timeout, 0); + else + triton_timer_add(rpd->ses->ctrl->ctx, &rpd->session_timeout, 0); +} + static void ses_starting(struct ap_session *ses) { struct radius_pd_t *rpd = mempool_alloc(rpd_pool); |