From: Alan T. DeKok Date: Thu, 6 Mar 2025 15:11:53 +0000 (-0500) Subject: remove '&' from rediswho X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=562e7ce87db2722b1812d997dd78498ce6198b3d;p=thirdparty%2Ffreeradius-server.git remove '&' from rediswho and complain if the queries are missing --- diff --git a/doc/antora/modules/reference/pages/raddb/mods-available/rediswho.adoc b/doc/antora/modules/reference/pages/raddb/mods-available/rediswho.adoc index 8013639ef5..bd5dcab50a 100644 --- a/doc/antora/modules/reference/pages/raddb/mods-available/rediswho.adoc +++ b/doc/antora/modules/reference/pages/raddb/mods-available/rediswho.adoc @@ -104,17 +104,17 @@ rediswho { trim_count = 15 expire_time = 86400 Start { - insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}" + insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}" trim = "LTRIM %{User-Name} 0 ${..trim_count}" expire = "EXPIRE %{User-Name} ${..expire_time}" } Interim-Update { - insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}" + insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}" trim = "LTRIM %{User-Name} 0 ${..trim_count}" expire = "EXPIRE %{User-Name} ${..expire_time}" } Stop { - insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}" + insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}" trim = "LTRIM %{User-Name} 0 ${..trim_count}" expire = "EXPIRE %{User-Name} ${..expire_time}" } diff --git a/raddb/mods-available/rediswho b/raddb/mods-available/rediswho index 8e0777eede..9a7853443b 100644 --- a/raddb/mods-available/rediswho +++ b/raddb/mods-available/rediswho @@ -83,7 +83,7 @@ rediswho { # ### Start # Start { - insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}" + insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}" trim = "LTRIM %{User-Name} 0 ${..trim_count}" expire = "EXPIRE %{User-Name} ${..expire_time}" } @@ -92,7 +92,7 @@ rediswho { # ### Interim-Update # Interim-Update { - insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}" + insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}" trim = "LTRIM %{User-Name} 0 ${..trim_count}" expire = "EXPIRE %{User-Name} ${..expire_time}" } @@ -101,7 +101,7 @@ rediswho { # ### Stop # Stop { - insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{&NAS-IP-Address || &NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{&Acct-Input-Gigawords || 0},%{&Acct-Output-Gigawords || 0},%{&Acct-Input-Octets || 0},%{&Acct-Output-Octets || 0}" + insert = "LPUSH %{User-Name} %l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}" trim = "LTRIM %{User-Name} 0 ${..trim_count}" expire = "EXPIRE %{User-Name} ${..expire_time}" } diff --git a/src/modules/rlm_rediswho/rlm_rediswho.c b/src/modules/rlm_rediswho/rlm_rediswho.c index 1c8a920095..a8c3ebe8ab 100644 --- a/src/modules/rlm_rediswho/rlm_rediswho.c +++ b/src/modules/rlm_rediswho/rlm_rediswho.c @@ -186,7 +186,7 @@ static unlang_action_t mod_accounting_all(rlm_rcode_t *p_result, rlm_rediswho_t if (ret < 0) RETURN_MODULE_FAIL; /* Only trim if necessary */ - if ((inst->trim_count >= 0) && (ret > inst->trim_count)) { + if (trim && (inst->trim_count >= 0) && (ret > inst->trim_count)) { if (rediswho_command(inst, request, trim) < 0) RETURN_MODULE_FAIL; } @@ -226,6 +226,16 @@ static unlang_action_t CC_HINT(nonnull) mod_accounting(rlm_rcode_t *p_result, mo trim = cf_pair_value(cf_pair_find(cs, "trim")); expire = cf_pair_value(cf_pair_find(cs, "expire")); + if (!insert) { + RDEBUG("No 'insert' query - ignoring"); + RETURN_MODULE_NOOP; + } + + if (!expire) { + RDEBUG("No 'expire' query - ignoring"); + RETURN_MODULE_NOOP; + } + return mod_accounting_all(&rcode, inst, request, insert, trim, expire); }