From a9dffc61f0f373422f78adb6a8674a64a2ce220d Mon Sep 17 00:00:00 2001 From: Robert Anderson <randerson@lbsd.net> Date: Mon, 26 Apr 2010 11:31:59 +0000 Subject: [PATCH] * More accurate result testing after updates * Modified NAS-Port-Id to use a blank default if not defined (in the case of vpn's) --- smradius/modules/accounting/mod_accounting_sql.pm | 14 +++++++++----- smradiusd.conf | 10 +++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/smradius/modules/accounting/mod_accounting_sql.pm b/smradius/modules/accounting/mod_accounting_sql.pm index e8b3e02f..007194d5 100644 --- a/smradius/modules/accounting/mod_accounting_sql.pm +++ b/smradius/modules/accounting/mod_accounting_sql.pm @@ -108,7 +108,7 @@ sub init %{request.NAS-Port-Type}, %{request.Calling-Station-Id}, %{request.Called-Station-Id}, - %{request.NAS-Port-Id}, + %{request.NAS-Port-Id=}, %{request.Acct-Session-Id}, %{request.Framed-IP-Address}, %{request.Acct-Authentic}, @@ -137,6 +137,7 @@ sub init Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} GROUP BY PeriodKey ORDER BY @@ -159,6 +160,7 @@ sub init Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} AND PeriodKey = %{query.PeriodKey} '; @@ -177,6 +179,7 @@ sub init Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} AND PeriodKey = %{query.PeriodKey} '; @@ -190,6 +193,7 @@ sub init Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} '; $config->{'accounting_usage_query'} = ' @@ -215,6 +219,7 @@ sub init Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} AND PeriodKey = %{query.PeriodKey} ORDER BY ID @@ -226,7 +231,6 @@ sub init @TP@accounting WHERE ID = %{query.DuplicateID} - AND PeriodKey = %{query.PeriodKey} '; # Setup SQL queries @@ -523,7 +527,7 @@ sub acct_log } # Check if we updated duplicates, if we did, fix them - if ($sth > 1) { + if ($sth ne "0E0" && $sth > 1) { fixDuplicates($server, $template); } @@ -541,7 +545,7 @@ sub acct_log } # Check if we updated duplicates, if we did, fix them - if ($sth > 1) { + if ($sth ne "0E0" && $sth > 1) { fixDuplicates($server, $template); } @@ -642,7 +646,7 @@ sub acct_log } # Check if we updated duplicates, if we did, fix them - if ($sth > 1) { + if ($sth ne "0E0" && $sth > 1) { fixDuplicates($server, $template); } } diff --git a/smradiusd.conf b/smradiusd.conf index 056bf047..41754f85 100644 --- a/smradiusd.conf +++ b/smradiusd.conf @@ -250,7 +250,7 @@ accounting_start_query=<<EOT %{request.NAS-Port-Type}, %{request.Calling-Station-Id}, %{request.Called-Station-Id}, - %{request.NAS-Port-Id}, + %{request.NAS-Port-Id=}, %{request.Acct-Session-Id}, %{request.Framed-IP-Address}, %{request.Acct-Authentic}, @@ -279,6 +279,7 @@ accounting_update_get_records_query=<<EOT Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} GROUP BY PeriodKey ORDER BY @@ -301,6 +302,7 @@ accounting_update_query=<<EOT Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} AND PeriodKey = %{query.PeriodKey} EOT @@ -319,6 +321,7 @@ accounting_stop_query=<<EOT Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} AND PeriodKey = %{query.PeriodKey} EOT @@ -332,6 +335,7 @@ accounting_stop_status_query=<<EOT Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} EOT accounting_usage_query=<<EOT @@ -357,9 +361,10 @@ accounting_select_duplicates_query=<<EOT Username = %{request.User-Name} AND AcctSessionID = %{request.Acct-Session-Id} AND NASIPAddress = %{request.NAS-IP-Address} + AND NASPortID = %{request.NAS-Port-Id=} AND PeriodKey = %{query.PeriodKey} ORDER BY - ID + ID DESC LIMIT 99 OFFSET 1 EOT @@ -368,7 +373,6 @@ accounting_delete_duplicates_query=<<EOT @TP@accounting WHERE ID = %{query.DuplicateID} - AND PeriodKey = %{query.PeriodKey} EOT -- GitLab