diff --git a/feeds/ucentral/uspot/files/etc/config/uspot b/feeds/ucentral/uspot/files/etc/config/uspot index a6e3537fd..8ff7de55a 100644 --- a/feeds/ucentral/uspot/files/etc/config/uspot +++ b/feeds/ucentral/uspot/files/etc/config/uspot @@ -18,6 +18,7 @@ config webroot def_captive # option acct_port '1812' # radius accounting server port # option acct_secret '' # radius accounting server password # option acct_proxy '' # radius accounting server proxy +# option acct_interval '' # radius accounting interim interval override # option nasid '' # radius NAS-Identitifer, UAM '&nasid=' # option nasmac '' # radius Called-Station, UAM '&called=' # option mac_format '' # MAC format specifier: 'aabbccddeeff', 'aa-bb-cc-dd-ee-ff', 'aa:bb:cc:dd:ee:ff' or the equivalent uppercase diff --git a/feeds/ucentral/uspot/files/usr/share/uspot/accounting.uc b/feeds/ucentral/uspot/files/usr/share/uspot/accounting.uc index a96f53003..c5cc95459 100755 --- a/feeds/ucentral/uspot/files/usr/share/uspot/accounting.uc +++ b/feeds/ucentral/uspot/files/usr/share/uspot/accounting.uc @@ -117,8 +117,9 @@ function client_add(interface, mac, state) { let accounting = (config[interface].acct_server && config[interface].acct_secret); - defval = config[interface].acct_interval || 600; - let interval = (state.data?.radius?.reply['Acct-Interim-Interval'] || defval) * 1000; + // RFC: NAS local interval value *must* override RADIUS attribute + defval = config[interface].acct_interval; + let interval = (defval || state.data?.radius?.reply['Acct-Interim-Interval'] || 0) * 1000; defval = config[interface].session_timeout || 0; let session = (state.data?.radius?.reply['Session-Timeout'] || defval); @@ -141,7 +142,7 @@ function client_add(interface, mac, state) { clients[interface][mac].ip6addr = state.ip6addr; if (state.data?.radius?.request) { clients[interface][mac].radius = state.data.radius.request; - if (accounting) + if (accounting && interval) clients[interface][mac].timeout = uloop.timer(interval, () => radius_interim(interface, mac)); } syslog(interface, mac, 'adding client');