diff options
author | Ivan Kohler <ivan@freeside.biz> | 2015-11-23 13:17:02 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2015-11-23 13:17:02 -0800 |
commit | 2556ee7497c7684b75eca0061457d21b9b315dc1 (patch) | |
tree | dbc3784c0975882d8df853284942e2faefd3538f /httemplate | |
parent | 155cb2a71481bdcaad6fd66bbe9d804c64d7c29d (diff) |
deal when Net::MAC::Vendor-lookup doesn't return an arrayref
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/search/sqlradius.cgi | 243 |
1 files changed, 122 insertions, 121 deletions
diff --git a/httemplate/search/sqlradius.cgi b/httemplate/search/sqlradius.cgi index 5d6aeea1e..84f1f40ef 100644 --- a/httemplate/search/sqlradius.cgi +++ b/httemplate/search/sqlradius.cgi @@ -1,4 +1,4 @@ -<% include( '/elements/header.html', 'RADIUS Sessions') %> +<& /elements/header.html, 'RADIUS Sessions' &> % ### % # and finally, display the thing @@ -19,7 +19,7 @@ <% $part_export->machine ? ' to '. $part_export->machine : '' |h %> </FONT><BR> - <% include( '/elements/table-grid.html' ) %> + <& /elements/table-grid.html &> % my $bgcolor1 = '#eeeeee'; % my $bgcolor2 = '#ffffff'; % my $bgcolor; @@ -245,6 +245,8 @@ my $user_format = sub { } + $user = encode_entities($user); + if ( $svc ) { #i should use svc_link, but that's expensive per-user @@ -267,7 +269,7 @@ my $customer_format = sub { my $cust_main = $cust_pkg->cust_main; qq!<A HREF="${p}view/cust_main.cgi?!. $cust_main->custnum. '">'. - $cust_pkg->cust_main->name. '</A>'; + encode_entities($cust_pkg->cust_main->name). '</A>'; }; my $time_format = sub { @@ -308,135 +310,134 @@ my $octets_format = sub { sprintf('<B>%.3f</B> gigs', $gigs); }; +my $mac_format = sub { + my $value = shift; + if ( $value =~ /^\s*(([\dA-F]{2}[\-:]){5}[\dA-F]{2})/i + and my $vendor = Net::MAC::Vendor::lookup($1) + ) + { + return encode_entities($value). + ' <span style="white-space: nowrap">('. + encode_entities($vendor->[0]). + ')</span>'; + } + length($value) ? encode_entities($value) : ' '; +}; + + ### # the fields ### my %fields; if ( $summarize ) { -tie %fields, 'Tie::IxHash', - 'username' => { - name => 'User', - attrib => 'UserName', - fmt => $user_format, - align => 'left', - }, - 'dummy' => { - name => 'Customer', - attrib => '', - fmt => $customer_format, - align => 'left', - }, - 'acctsessiontime' => { - name => 'Duration', - attrib => 'Acct-Session-Time', - fmt => $duration_format, - align => 'right', - }, - 'acctinputoctets' => { - name => 'Upload', # (from user)', - attrib => 'Acct-Input-Octets', - fmt => $octets_format, - align => 'right', - }, - 'acctoutputoctets' => { - name => 'Download', # (to user)', - attrib => 'Acct-Output-Octets', - fmt => $octets_format, - align => 'right', - }, -; + + tie %fields, 'Tie::IxHash', + 'username' => { + name => 'User', + attrib => 'UserName', + fmt => $user_format, + align => 'left', + }, + 'dummy' => { + name => 'Customer', + attrib => '', + fmt => $customer_format, + align => 'left', + }, + 'acctsessiontime' => { + name => 'Duration', + attrib => 'Acct-Session-Time', + fmt => $duration_format, + align => 'right', + }, + 'acctinputoctets' => { + name => 'Upload', # (from user)', + attrib => 'Acct-Input-Octets', + fmt => $octets_format, + align => 'right', + }, + 'acctoutputoctets' => { + name => 'Download', # (to user)', + attrib => 'Acct-Output-Octets', + fmt => $octets_format, + align => 'right', + }, + ; + } else { -tie %fields, 'Tie::IxHash', - 'username' => { - name => 'User', - attrib => 'UserName', - fmt => $user_format, - align => 'left', - }, - 'realm' => { - name => 'Realm', - attrib => 'Realm', - align => 'left', - }, - 'dummy' => { - name => 'Customer', - attrib => '', - fmt => $customer_format, - align => 'left', - }, - 'framedipaddress' => { - name => 'IP Address', - attrib => 'Framed-IP-Address', - fmt => sub { my $ip = shift; - length($ip) ? $ip : ' '; - }, - align => 'right', - }, - 'callingstationid' => { - name => 'Source or MAC', - attrib => 'Calling-Station-Id', - fmt => sub { - my $src = shift; - if ( $src =~ - /^\s*(([\dA-F]{2}[\-:]){5}[\dA-F]{2})/i ) { - return $src. ' <span style="white-space: nowrap">('. - (Net::MAC::Vendor::lookup($1))->[0]. - ')</span>'; - - } - length($src) ? $src : ' '; + + tie %fields, 'Tie::IxHash', + 'username' => { + name => 'User', + attrib => 'UserName', + fmt => $user_format, + align => 'left', }, - align => 'right', - }, - 'calledstationid' => { - name => 'Destination', - attrib => 'Called-Station-ID', - fmt => sub { - my $dst = shift; - if ( $dst =~ - /^\s*(([\dA-F]{2}[\-:]){5}[\dA-F]{2})/i ) { - return $dst. ' <span style="white-space: nowrap">('. - (Net::MAC::Vendor::lookup($1))->[0]. - ')</span>'; - } - length($dst) ? $dst : ' '; + 'realm' => { + name => 'Realm', + attrib => 'Realm', + align => 'left', }, - align => 'left', - }, - 'acctstarttime' => { - name => 'Start time', - attrib => 'Acct-Start-Time', - fmt => $time_format, - align => 'left', - }, - 'acctstoptime' => { - name => 'End time', - attrib => 'Acct-Stop-Time', - fmt => $time_format_or_open, - align => 'left', - }, - 'acctsessiontime' => { - name => 'Duration', - attrib => 'Acct-Session-Time', - fmt => $duration_format, - align => 'right', - }, - 'acctinputoctets' => { - name => 'Upload', # (from user)', - attrib => 'Acct-Input-Octets', - fmt => $octets_format, - align => 'right', - }, - 'acctoutputoctets' => { - name => 'Download', # (to user)', - attrib => 'Acct-Output-Octets', - fmt => $octets_format, - align => 'right', + 'dummy' => { + name => 'Customer', + attrib => '', + fmt => $customer_format, + align => 'left', + }, + 'framedipaddress' => { + name => 'IP Address', + attrib => 'Framed-IP-Address', + fmt => sub { my $ip = shift; + length($ip) ? $ip : ' '; + }, + align => 'right', + }, + 'callingstationid' => { + name => 'Source or MAC', + attrib => 'Calling-Station-Id', + fmt => $mac_format, + align => 'right', + }, + 'calledstationid' => { + name => 'Destination', + attrib => 'Called-Station-ID', + fmt => $mac_format, + align => 'left', }, -; + 'acctstarttime' => { + name => 'Start time', + attrib => 'Acct-Start-Time', + fmt => $time_format, + align => 'left', + }, + 'acctstoptime' => { + name => 'End time', + attrib => 'Acct-Stop-Time', + fmt => $time_format_or_open, + align => 'left', + }, + 'acctsessiontime' => { + name => 'Duration', + attrib => 'Acct-Session-Time', + fmt => $duration_format, + align => 'right', + }, + 'acctinputoctets' => { + name => 'Upload', # (from user)', + attrib => 'Acct-Input-Octets', + fmt => $octets_format, + align => 'right', + }, + 'acctoutputoctets' => { + name => 'Download', # (to user)', + attrib => 'Acct-Output-Octets', + fmt => $octets_format, + align => 'right', + }, + ; } -$fields{$_}->{fmt} ||= sub { length($_[0]) ? shift : ' '; } +$fields{$_}->{fmt} ||= sub { length($_[0]) ? encode_entities(shift) : ' '; } foreach keys %fields; </%init> |