freebsd-ports/net/icradius/files/pcisco-scripts::radius.cgi
Will Andrews 7765c3d350 Add icradius 0.18.1, a variant of Cistron RADIUS, but with a MySQL
backend.

PR:		29080
Submitted by:	Sergey N. Voronkov <serg@tmn.ru>
2001-12-19 02:30:02 +00:00

106 lines
5.5 KiB
Perl

--- scripts/radius.cgi.orig Wed Jul 18 16:03:17 2001
+++ scripts/radius.cgi Wed Jul 18 15:30:03 2001
@@ -2283,7 +2283,7 @@
<select name="terminate_cause">
<option value=''>
~;
- my $terminate_causes = $radius->fetch_attribute_values('Acct-Terminate-Cause');
+ my $terminate_causes = $radius->fetch_attribute_values('Cisco-Disconnect-Cause');
foreach my $cause (@$terminate_causes) {
print qq!<option value="$cause"!;
print q! selected! if ($terminate_cause eq $cause);
@@ -2334,7 +2334,10 @@
$sql .= " AND radacct.NASPortId = '$nas_port'" if $nas_port;
$sql .= " AND radacct.NASPortType = '$nas_port_type'" if $nas_port_type;
$sql .= " AND radacct.FramedIPAddress = '$framed_ipaddr'" if $framed_ipaddr;
- $sql .= " AND radacct.AcctTerminateCause = '$terminate_cause'" if $terminate_cause;
+ if( $terminate_cause ){
+ my %list = &get_attr_list('Cisco-Disconnect-Cause');
+ $sql .= " AND radacct.CiscoDisconnectCause = \"".$list{$terminate_cause}."\"";
+ }
$sql .= " ORDER BY radacct.UserName, radacct.AcctStartTime DESC";
@@ -2427,7 +2430,13 @@
my $session = $radius->fetch_session_info($radacctid);
- print qq~
+ my $NASPortType = &get_attr($session->{NASPortType},"NAS-Port-Type");
+ my $AcctAuthentic = &get_attr($session->{AcctAuthentic},"Acct-Authentic");
+ my $CiscoDisconnectCause = &get_attr($session->{CiscoDisconnectCause},"Cisco-Disconnect-Cause");
+ my $ServiceType = &get_attr($session->{ServiceType},"Service-Type");
+ my $FramedProtocol = &get_attr($session->{FramedProtocol},"Framed-Protocol");
+
+ print qq~
<center>
<table cellspacing="4" cellpadding="2" border="1" cols="2">
<tr><th bgcolor="$highlight">Attribute</th><th bgcolor="$highlight">Value</th></tr>
@@ -2436,24 +2445,23 @@
<tr><td align="center">Realm</td><td align="center">$session->{Realm}</td></tr>
<tr><td align="center">NAS-IP-Address</td><td align="center">$session->{NASIPAddress}</td></tr>
<tr><td align="center">NAS-Port-Id</td><td align="center">$session->{NASPortId}</td></tr>
- <tr><td align="center">NAS-Port-Type</td><td align="center">$session->{NASPortType}</td></tr>
+ <tr><td align="center">NAS-Port-Type</td><td align="center">$NASPortType</td></tr>
<tr><td align="center">Acct-Start-Time</td><td align="center">$session->{AcctStartTime}</td></tr>
<tr><td align="center">Acct-Stop-Time</td><td align="center">$session->{AcctStopTime}</td></tr>
<tr><td align="center">Acct-Session-Time</td><td align="center">$session->{AcctSessionTime}</td></tr>
- <tr><td align="center">Acct-Authentic</td><td align="center">$session->{AcctAuthentic}</td></tr>
- <tr><td align="center">Connect-Info</td><td align="center">$session->{ConnectInfo}</td></tr>
+ <tr><td align="center">Acct-Authentic</td><td align="center">$AcctAuthentic</td></tr>
<tr><td align="center">Acct-Input-Octets</td><td align="center">$session->{AcctInputOctets}</td></tr>
<tr><td align="center">Acct-Output-Octets</td><td align="center">$session->{AcctOutputOctets}</td></tr>
- <tr><td align="center">Called-Station-Id</td><td align="center">$session->{CalledStationId}</td></tr>
- <tr><td align="center">Calling-Station-Id</td><td align="center">$session->{CallingStationId}</td></tr>
- <tr><td align="center">Acct-Terminate-Cause</td><td align="center">$session->{AcctTerminateCause}</td></tr>
- <tr><td align="center">Service-Type</td><td align="center">$session->{ServiceType}</td></tr>
- <tr><td align="center">Framed-Protocol</td><td align="center">$session->{FramedProtocol}</td></tr>
+ <tr><td align="center">Cisco-Disconnect-Cause</td><td align="center">$CiscoDisconnectCause</td></tr>
+ <tr><td align="center">Service-Type</td><td align="center">$ServiceType</td></tr>
+ <tr><td align="center">Framed-Protocol</td><td align="center">$FramedProtocol</td></tr>
<tr><td align="center">Framed-IP-Address</td><td align="center">$session->{FramedIPAddress}</td></tr>
<tr><td align="center">Acct-Start-Delay-Time</td><td align="center">$session->{AcctStartDelay}</td></tr>
<tr><td align="center">Acct-Stop-Delay-Time</td><td align="center">$session->{AcctStopDelay}</td></tr>
- </table>
- </center>
+ <tr><td align="center">Cisco-Data-Rate</td><td align="center">$session->{CiscoDataRate}</td></tr>
+ <tr><td align="center">Cisco-Xmit-Rate</td><td align="center">$session->{CiscoXmitRate}</td></tr>
+ <tr><td align="center">Calling-Station-Id</td><td align="center">$session->{CallingStationId}</td></tr>
+ <tr><td align="center">Called-Station-Id</td><td align="center">$session->{CalledStationId}</td></tr></table></center>
~;
}
@@ -3160,3 +3168,33 @@
unlink $tmp_sessions_file;
}
+
+# Get attribute description
+sub get_attr {
+ my( $attr ) = shift;
+ my( $attr_name) = shift;
+ my( $sth ) =
+ $radius->{dbh}->prepare("SELECT Value from dictionary WHERE
+ Type='VALUE' AND Attribute='$attr_name' AND
+ Format='$attr'");
+ $sth->execute || &terminal_error;
+ my @row = $sth->fetchrow_array;
+ $sth->finish;
+
+ return (( $#row >= 0 )? $row[0]:$attr);
+}
+
+# Make a list of values of the specified attribute
+sub get_attr_list {
+ my( $attr ) = shift;
+ my( %list, @row );
+ my( $sth ) =
+ $radius->{dbh}->prepare("SELECT Value,Format FROM dictionary WHERE
+ Type='VALUE' AND Attribute='$attr'");
+ $sth->execute || &terminal_error;
+ while( @row = $sth->fetchrow_array ){
+ $list{$row[0]}=$row[1];
+ }
+ $sth->finish;
+ return %list;
+}