summaryrefslogtreecommitdiff
path: root/accel-pppd/radius/radius.c
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2023-01-27 11:05:26 +0300
committerDmitry Kozlov <xeb@mail.ru>2023-01-27 11:05:26 +0300
commitcc8f2bada5635768d425e2fa2bafb095acda8ca9 (patch)
tree94241195b30e21c1b2fd20af70adcc4c6a083e51 /accel-pppd/radius/radius.c
parentb120b0d83e2145d1681f10003b13274dec6dc412 (diff)
downloadaccel-ppp-xebd-cc8f2bada5635768d425e2fa2bafb095acda8ca9.tar.gz
accel-ppp-xebd-cc8f2bada5635768d425e2fa2bafb095acda8ca9.zip
radius: implemented accounting delay option (acct-delay-start)
Diffstat (limited to 'accel-pppd/radius/radius.c')
-rw-r--r--accel-pppd/radius/radius.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c
index 786faa5..2406ba0 100644
--- a/accel-pppd/radius/radius.c
+++ b/accel-pppd/radius/radius.c
@@ -57,6 +57,8 @@ static int conf_strip_realm;
const char *conf_attr_tunnel_type;
+int conf_acct_delay_start;
+
static LIST_HEAD(sessions);
static pthread_rwlock_t sessions_lock = PTHREAD_RWLOCK_INITIALIZER;
@@ -697,6 +699,9 @@ static void ses_finishing(struct ap_session *ses)
if (rpd->acct_started || rpd->acct_req)
rad_acct_stop(rpd);
+
+ if (rpd->acct_interim_timer.tpd)
+ triton_timer_del(&rpd->acct_interim_timer);
}
static void ses_finished(struct ap_session *ses)
@@ -1075,6 +1080,12 @@ static int load_config(void)
if (opt)
conf_nas_port_id_in_req = atoi(opt);
+ opt = conf_get_opt("radius", "acct-delay-start");
+ if (opt)
+ conf_acct_delay_start = atoi(opt);
+ else
+ conf_acct_delay_start = 0;
+
return 0;
}