(RADIATOR) Problem with quoted variable substitution and AuthSQL

Mike McCauley mikem at open.com.au
Thu Apr 6 02:00:01 CDT 2006


Hi Robert,

thanks for reporting this.
It was due to interactions between nested calls to format_special. In some 
cases, an error during the formatting of an accounting item would clobber the 
current request pointer.

The problem is now fixed in the latest Radiator patch set.
We apologise for any inconvenience.

Cheers.


On Wednesday 05 April 2006 11:33, Robert Fisher wrote:
> Hugh:
>
> 	I'm currently using AuthSQL to store data from accounting
> requests.  However, I'm looking to switch from the AcctColumnDef
> to the use of AcctSQLStatement to launch a stored procedure to
> manage this data.  The reason for the switch is that my stored
> procedure will call other stored procedures that presently are
> stored in a different database so as to map out some of the
> string types to an integer index.
>
> 	However, while I was experimenting with this -- I ran into
> the problem that I noticed that my request variable substitutions
> towards the end of the AcctSQLStatement were not being translated,
> specifically in this example for Called-Station-Id and
> Calling-Station-Id which I verified were in every accounting request
> that I tested with.
> 	Turning Trace to 4 also showed these av-pairs in the packet,
> but they were not being found as the variable lookup.  After looking
> through this, I'm wondering if I'm possibly running into a problem
> with quotes as I'm noticing that the attributes I'm not finding in
> my formatted AcctSQLStatement are the string types which have their
> own quotes.
> 	If there's a way to have the substitutions return single
> rather than double quotes, that would work as well -- since would
> prefer single quoted data to be in line with SQL.
>
>
> Below is the AuthBy clause and a cut from the trace 4 logfile
> demonstrating this on Radiator 3.14, ActiveState 5.8.0, Win2K:
>
>
>
> <AuthBy SQL>
>
> 	Identifier	SitestarAcct2
>
>          DBSource        	%{GlobalVar:ACCOUNTING_DB}
> 	DBUsername		%{GlobalVar:databaseuser}
>          DBAuth          	%{GlobalVar:databasepass}
> 	FailureBackoffTime	%{GlobalVar:databackofftime}
>
> 	# Temporary strip realms.
> 	# RewriteUsername		s/^([^\@]+).*/$1/
>
> 	AuthSelect
> 	IgnoreAuthentication
>
> 	HandleAcctStatusTypes	Start,Stop
> 	AccountingTable	Calls
>
> 	AcctSQLStatement	CallInsert @UserName='%U',\
> 		@Realm='%R',\
> 		@CallDate='%A',\
> 		@AcctStatusType=%{IntegerVal:Acct-Status-Type},\
> 		@AcctDelayTime=0%{Acct-Delay-Time},\
> 		@AcctInputOctets=0%{Acct-Input-Octets},\
> 		@AcctOutputOctets=0%{Acct-Output-Octets},\
> 		@AcctSessionID='%{Acct-Session-Id}',\
> 		@AcctSessionTime=0%{Acct-Session-Time},\
>
> @AcctTerminateCause=%{IntegerVal:Acct-Terminate-Cause}%{IntegerVal:Ascend-D
>isconnect-Cause},\ @NASIdentifier='%N',\
> 		@NASPort=0%{IntegerVal:NAS-Port},\
> 		@UserService=0%{Service-Type},\
> 		@FramedProtocol=0%{IntegerVal:Framed-Protocol},\
> 		@FramedAddress='%{Framed-IP-Address}',\
> 		@NASPortType=0%{IntegerVal:NAS-Port-Type},\
> 		@NASPortDNIS='%{Called-Station-Id}',\
> 		@CallerID='%{Calling-Station-Id}',\
> 		@ConnectInfo='%{Connect-Info}'
>
> </AuthBy SQL>
>
>
> *** Received from 72.236.200.5 port 1646 ....
> Code:       Accounting-Request
> Identifier: 82
> Authentic:  X} <185>=<137><164><204><142>-<204><4><159><201><131><194>
> Attributes:
> 	User-Name = "mdwhite"
> 	NAS-IP-Address = 67.63.128.5
> 	NAS-Identifier = "67.63.128.5"
> 	Acct-Status-Type = Stop
> 	Acct-Session-Id = "16975425"
> 	Acct-Delay-Time = 240
> 	Acct-Authentic = RADIUS
> 	Service-Type = Framed-User
> 	NAS-Port-Type = 0
> 	NAS-Port = 260
> 	USR-Modem-Training-Time = 27
> 	USR-Interface-Index = 1516
> 	USR-Chassis-Call-Slot = 2
> 	USR-Chassis-Call-Span = 1
> 	USR-Chassis-Call-Channel = 4
> 	USR-Unauthenticated-Time = 3
> 	Calling-Station-Id = "2766944917"
> 	Called-Station-Id = "2766936013"
> 	USR-VPN-ID = 0
> 	USR-Modulation-Type = v90Digital
> 	USR-Simplified-MNP-Levels = ccittV42
> 	USR-Simplified-V42bis-Usage = ccittV42bis
> 	USR-Connect-Speed = 38666_BPS
> 	Framed-Protocol = PPP
> 	Framed-IP-Address = 72.236.201.242
> 	USR-VTS-Session-Key =
> "<148><178><233><236>h<230>P<233><249><162><221><16><130><18>w`"
> 	USR-Call-Arrived-Time = 323720333
> 	USR-Call-Lost-Time = 323723045
> 	USR-Bogus-39087 = ""
> 	USR-Connect-Term-Reason = 61
> 	USR-Failure-to-Connect-Reason = 31
> 	USR-Blocks-Sent = 23896
> 	USR-Blocks-Resent = 33
> 	USR-Number-of-Blers = 3
> 	USR-Initial-Tx-Link-Data-Rate = 19
> 	USR-Final-Tx-Link-Data-Rate = 19
> 	USR-Bogus-39079 = "<0><0><0><8>"
> 	USR-Bogus-39080 = "<0><0><31><219>"
> 	USR-Initial-Rx-Link-Data-Rate = 18
> 	USR-Final-Rx-Link-Data-Rate = 18
> 	USR-Retrains-Requested = 0
> 	USR-Retrains-Granted = 2
> 	Acct-Session-Time = 2685
> 	Acct-Terminate-Cause = User-Request
> 	USR-Disconnect-Reason = 8
> 	USR-Speed-of-Connection = 38666
> 	Acct-Input-Octets = 120750
> 	Acct-Output-Octets = 987605
> 	Acct-Input-Packets = 1952
> 	Acct-Output-Packets = 2288
>
> Tue Apr  4 20:18:43 2006: DEBUG: Rewrote user name to mdwhite
> Tue Apr  4 20:18:43 2006: DEBUG: Rewrote user name to mdwhite
> Tue Apr  4 20:18:43 2006: DEBUG: Rewrote user name to mdwhite
> Tue Apr  4 20:18:43 2006: DEBUG: Rewrote user name to mdwhite
> Tue Apr  4 20:18:43 2006: DEBUG: Rewrote user name to mdwhite
> Tue Apr  4 20:18:43 2006: DEBUG: Rewrote user name to mdwhite
> Tue Apr  4 20:18:43 2006: DEBUG: Handling request with Handler ''
> Tue Apr  4 20:18:43 2006: DEBUG:  Deleting session for mdwhite,
> 67.63.128.5, 260
> Tue Apr  4 20:18:43 2006: DEBUG: Handling with Radius::AuthSQL
> Tue Apr  4 20:18:43 2006: DEBUG: Handling accounting with Radius::AuthSQL
> Tue Apr  4 20:18:43 2006: ERR: There is no value named  for attribute
> Ascend-Disconnect-Cause. Using 0.
> Tue Apr  4 20:18:43 2006: DEBUG: do query is: 'CallInsert
> @UserName='mdwhite', at Realm='', at CallDate='Apr  4, 2006
> 20:14', at AcctStatusType=2, at AcctDelayTime=0240, at AcctInputOctets=0120750, at Acct
>OutputOctets=0987605, at AcctSessionID='16975425', at AcctSessionTime=02685, at AcctT
>erminateCause=10, at NASIdentifier='67.63.128.5', at NASPort=00, at UserService=0, at Fr
>amedProtocol=00, at FramedAddress='', at NASPortType=00, at NASPortDNIS='', at CallerID=
>'', at ConnectInfo=''':
>
> Tue Apr  4 20:18:43 2006: DEBUG: AuthBy SQL result: ACCEPT,
> Tue Apr  4 20:18:43 2006: DEBUG: Handling with Radius::AuthSITESTAR
> Tue Apr  4 20:18:43 2006: DEBUG: AuthBy SITESTAR result: IGNORE, Ignored
> due to IgnoreAccounting
> Tue Apr  4 20:18:43 2006: DEBUG: Packet dump:
>
> --
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on radiator-announce at open.com.au
> To unsubscribe, email 'majordomo at open.com.au' with
> 'unsubscribe radiator' in the body of the message.

-- 
Mike McCauley                               mikem at open.com.au
Open System Consultants Pty. Ltd            Unix, Perl, Motif, C++, WWW
9 Bulbul Place Currumbin Waters QLD 4223 Australia   http://www.open.com.au
Phone +61 7 5598-7474                       Fax   +61 7 5598-7070

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP etc on Unix, Windows, MacOS, NetWare etc.

--
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list