--- On Wed, 4/7/10, Alan DeKok <[email protected]> wrote:
> 
>   See "man unlang"
> 
Thanks for your hint, Alan. 

>   In the "authorize" section, do:
> 
>     if ("%{sql: SELECT ...quota ...}" <=
> "%{sql:SELECT ... usage ...}") {
>         reject
>     }
> 
I am using the following in the authorize section:

   if ("%{sql: SELECT Value from radcheck WHERE UserName='%{User-Name}' AND 
Attribute='Max-Octets';}" <= "%{sql: SELECT (SUM(Ac
ctInputOctets + AcctOutputOctets)) FROM radacct WHERE 
UserName='%{User-Name}';}") {
   reject
   }

Unfortunatly I get:

rlm_sql: Failed to create the pair: Invalid octet string "200000000" for 
attribute name "Max-Octets"

Any idea how to fix that?

Cheers,
Alexander


      
rad_recv: Access-Request packet from host 10.1.50.254 port 1645, id=38, 
length=140
        Framed-Protocol = PPP
        User-Name = "test"
        User-Password = "password"
        Calling-Station-Id = "test"
        Called-Station-Id = "corporate.local"
        Connect-Info = "8640000"
        NAS-Port-Type = Virtual
        NAS-Port = 38
        NAS-Port-Id = "Uniq-Sess-ID38"
        Service-Type = Framed-User
        NAS-IP-Address = 10.1.50.254
+- entering group authorize {...}
++[preprocess] returns ok
++? if ("%{sql: SELECT Value from radcheck WHERE UserName='%{User-Name}' AND 
Attribute='Max-Octets';}" <= "%{sql: SELECT (SUM(AcctInputOctets + 
AcctOutputOctets)) FROM radacct WHERE UserName='%{User-Name}';}")
sql_xlat
        expand: %{User-Name} -> test
sql_set_user escaped user --> 'test'
        expand:  SELECT Value from radcheck WHERE UserName='%{User-Name}' AND 
Attribute='Max-Octets'; ->  SELECT Value from radcheck WHERE UserName='test' 
AND Attribute='Max-Octets';
rlm_sql (sql): Reserving sql socket id: 4
sql_xlat finished
rlm_sql (sql): Released sql socket id: 4
        expand: %{sql: SELECT Value from radcheck WHERE UserName='%{User-Name}' 
AND Attribute='Max-Octets';} -> 200000000
sql_xlat
        expand: %{User-Name} -> test
sql_set_user escaped user --> 'test'
        expand:  SELECT (SUM(AcctInputOctets + AcctOutputOctets)) FROM radacct 
WHERE UserName='%{User-Name}'; ->  SELECT (SUM(AcctInputOctets + 
AcctOutputOctets)) FROM radacct WHERE UserName='test';
rlm_sql (sql): Reserving sql socket id: 3
sql_xlat finished
rlm_sql (sql): Released sql socket id: 3
        expand: %{sql: SELECT (SUM(AcctInputOctets + AcctOutputOctets)) FROM 
radacct WHERE UserName='%{User-Name}';} -> 18719870
? Evaluating ("%{sql: SELECT Value from radcheck WHERE UserName='%{User-Name}' 
AND Attribute='Max-Octets';}" <= "%{sql: SELECT (SUM(AcctInputOctets + 
AcctOutputOctets)) FROM radacct WHERE UserName='%{User-Name}';}") -> FALSE
++? if ("%{sql: SELECT Value from radcheck WHERE UserName='%{User-Name}' AND 
Attribute='Max-Octets';}" <= "%{sql: SELECT (SUM(AcctInputOctets + 
AcctOutputOctets)) FROM radacct WHERE UserName='%{User-Name}';}") -> FALSE
++[chap] returns noop
++[mschap] returns noop
[suffix] No '@' in User-Name = "test", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[unix] returns notfound
[files] users: Matched entry DEFAULT at line 172
++[files] returns ok
[sql]   expand: %{User-Name} -> test
[sql] sql_set_user escaped user --> 'test'
rlm_sql (sql): Reserving sql socket id: 2
[sql]   expand: SELECT id, username, attribute, value, op           FROM 
radcheck           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> 
SELECT id, username, attribute, value, op           FROM radcheck           
WHERE username = 'test'           ORDER BY id
rlm_sql: Failed to create the pair: Invalid octet string "200000000" for 
attribute name "Max-Octets"
rlm_sql (sql): Error getting data from database
[sql] SQL query error; rejecting user
rlm_sql (sql): Released sql socket id: 2
++[sql] returns fail
Using Post-Auth-Type Reject
+- entering group REJECT {...}
[attr_filter.access_reject]     expand: %{User-Name} -> test
 attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 0 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 0
Sending Access-Reject of id 38 to 10.1.50.254 port 1645
Waking up in 4.9 seconds.
Cleaning up request 0 ID 38 with timestamp +12
Ready to process requests.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to