summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-02-11 13:19:00 -0800
committerIvan Kohler <ivan@freeside.biz>2013-02-11 13:19:00 -0800
commitb2bc0890549ea23dfb1673191e4bc7e14d8d7740 (patch)
tree14e0122c4632486fa16651e4952b4f4c68818a79
parent1951a5f6de2a3a5b6964c0016455dc438cd1b53c (diff)
fix RADIUS open sessions report (modern mysql & Pg?), RT#14218
-rw-r--r--FS/FS/part_export/sqlradius.pm32
1 files changed, 20 insertions, 12 deletions
diff --git a/FS/FS/part_export/sqlradius.pm b/FS/FS/part_export/sqlradius.pm
index 979d4fb74..61f73f165 100644
--- a/FS/FS/part_export/sqlradius.pm
+++ b/FS/FS/part_export/sqlradius.pm
@@ -726,17 +726,21 @@ sub usage_sessions {
push @where, " CalledStationID LIKE 'sip:$prefix\%'";
}
- if ( $start ) {
- push @where, "$str2time AcctStopTime ) >= ?";
- push @param, $start;
- }
- if ( $end ) {
- push @where, "$str2time AcctStopTime ) <= ?";
- push @param, $end;
- }
if ( $opt->{open_sessions} ) {
push @where, 'AcctStopTime IS NULL';
+ } else {
+
+ if ( $start ) {
+ push @where, "$str2time AcctStopTime ) >= ?";
+ push @param, $start;
+ }
+ if ( $end ) {
+ push @where, "$str2time AcctStopTime ) <= ?";
+ push @param, $end;
+ }
+
}
+
if ( $opt->{starttime_start} ) {
push @where, "$str2time AcctStartTime ) >= ?";
push @param, $opt->{starttime_start};
@@ -755,10 +759,14 @@ sub usage_sessions {
my $orderby = 'ORDER BY AcctStartTime DESC';
$orderby = '' if $summarize;
- my $sth = $dbh->prepare('SELECT '. join(', ', @fields).
- " FROM radacct $where $groupby $orderby
- ") or die $dbh->errstr;
- $sth->execute(@param) or die $sth->errstr;
+ my $sql = 'SELECT '. join(', ', @fields).
+ " FROM radacct $where $groupby $orderby";
+ if ( $DEBUG ) {
+ warn $sql;
+ warn join(',', @param);
+ }
+ my $sth = $dbh->prepare($sql) or die $dbh->errstr;
+ $sth->execute(@param) or die $sth->errstr;
[ map { { %$_ } } @{ $sth->fetchall_arrayref({}) } ];