summaryrefslogtreecommitdiff
path: root/accel-pppd/radius/radius.c
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2016-04-30 20:32:00 +0300
committerDmitry Kozlov <xeb@mail.ru>2016-04-30 20:32:00 +0300
commit249dde4bbade8da12f80e64acef8826a4af0b567 (patch)
tree1a15f902f4ed737ad7f2b5bd0c53496c00098d1c /accel-pppd/radius/radius.c
parent6c82f3d0d0e52b506968f54fd058d1e2a51a855b (diff)
downloadaccel-ppp-xebd-249dde4bbade8da12f80e64acef8826a4af0b567.tar.gz
accel-ppp-xebd-249dde4bbade8da12f80e64acef8826a4af0b567.zip
radius: add Delegated-IPv6-Prefix to accounting packets
Diffstat (limited to 'accel-pppd/radius/radius.c')
-rw-r--r--accel-pppd/radius/radius.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c
index 24ca20a..c8eaf95 100644
--- a/accel-pppd/radius/radius.c
+++ b/accel-pppd/radius/radius.c
@@ -520,6 +520,19 @@ static void ses_finished(struct ap_session *ses)
release_pd(rpd);
}
+static void force_interim_update(struct ap_session *ses)
+{
+ struct radius_pd_t *rpd = find_pd(ses);
+
+ if (ses->terminating)
+ return;
+
+ if (!rpd)
+ return;
+
+ rad_acct_force_interim_update(rpd);
+}
+
struct radius_pd_t *find_pd(struct ap_session *ses)
{
struct ap_private *pd;
@@ -806,6 +819,7 @@ static void radius_init(void)
triton_event_register_handler(EV_SES_ACCT_START, (triton_event_func)ses_acct_start);
triton_event_register_handler(EV_SES_FINISHING, (triton_event_func)ses_finishing);
triton_event_register_handler(EV_SES_FINISHED, (triton_event_func)ses_finished);
+ triton_event_register_handler(EV_FORCE_INTERIM_UPDATE, (triton_event_func)force_interim_update);
triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
}