<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:tnt@kalik.net">tnt@kalik.net</a> a écrit :
<blockquote cite="mid:A6ojxKro.1224018921.0571110.tnt@kalik.net"
 type="cite">
  <blockquote type="cite">
    <pre wrap="">So In the authorize section i tried to add an update directive where i
define a variable which has the result of the sql query as value.
Then i want to concatenate this variable with the value of the Pool-Name
attribute as defined in the users file and set it as the new value of
Pool-Name. I think this would work for what i want to do.

update control {
               "%{MANA-DSL-Type}" = mysqldb:"SELECT value FROM radcheck
WHERE attribute='Subscription-Type' AND username='%{User-Name}'"
               if ("%{MANA-DSL-Type}") {
                       Pool-Name := "%{Pool-Name}""%{ADSL-Type}"
               }
       }

    </pre>
  </blockquote>
  <pre wrap=""><!---->
Ugh.

  </pre>
</blockquote>
<br>
I knew you was going to said that :)<br>
<br>
<blockquote cite="mid:A6ojxKro.1224018921.0571110.tnt@kalik.net"
 type="cite">
  <pre wrap="">1. Forget custom dictionaries. Use already defined temporary attributes
from freeradius internal dictionary (ie. Tmp-String-0,...,
Tmp-Integer-0, ... etc.)

  </pre>
</blockquote>
good<br>
<blockquote cite="mid:A6ojxKro.1224018921.0571110.tnt@kalik.net"
 type="cite">
  <pre wrap="">2. "%{}" goes around the value not attribute name:

Tmp-String-0 = "%{mysqldb:SELECT value FROM...}"
  </pre>
</blockquote>
<br>
understood<br>
<blockquote cite="mid:A6ojxKro.1224018921.0571110.tnt@kalik.net"
 type="cite">
  <pre wrap="">
3. You can't put if inside the control section. You can put update
control inside if section.

update control {
      read temporary value from the database
}

if(whatever) {
     update control { ...
  </pre>
</blockquote>
<br>
ok here is what i have now:<br>
<br>
    # I want the pool to be the concatenation of pool-name as
previously
set by huntgroup in<br>
    # users file, the expanded value of tmp-String-0 and
the string "_pool" if possible<br>
    update control {<br>
                Tmp-String-0 = "%{mysqldb:SELECT forfait FROM test
WHERE username='%{User-Name}'}"<br>
                Pool-Name := "%{Pool-Name}""%{Tmp-String-0}"_pool<br>
    }<br>
<br>
Two problems I can see in the debug output:<br>
<br>
- 1 - control returns noop (the update control is placed at the end
ofthe authorize section after pap), and so nothing happens...<br>
- 2 - when expanded "%{Pool-Name}" is empty whereas users as been
proceed before the "update control".<br>
<br>
Any idea?<br>
<br>
here is the revelant debug:<br>
rlm_sql (mysqldb): - sql_xlat<br>
    expand: %{User-Name} -> scott<br>
rlm_sql (mysqldb): sql_set_user escaped user --> 'scott'<br>
    expand: SELECT forfait FROM test WHERE username='%{User-Name}'
-> SELECT forfait FROM test WHERE username='scott'<br>
    expand: /var/log/freeradius/sqltrace.sql ->
/var/log/freeradius/sqltrace.sql<br>
rlm_sql (mysqldb): Reserving sql socket id: 4<br>
rlm_sql_mysql: query:  SELECT forfait FROM test WHERE username='scott'<br>
rlm_sql (mysqldb): - sql_xlat finished<br>
rlm_sql (mysqldb): Released sql socket id: 4<br>
    expand: %{mysqldb:SELECT forfait FROM test WHERE
username='%{User-Name}'} -> ADSL512<br>
    expand: %{Pool-Name} -> <br>
++[control] returns noop<br>
<br>
<blockquote cite="mid:A6ojxKro.1224018921.0571110.tnt@kalik.net"
 type="cite">
  <pre wrap="">
Ivan Kalik
Kalik Informatika ISP

-
List info/subscribe/unsubscribe? See <a class="moz-txt-link-freetext" href="http://www.freeradius.org/list/users.html">http://www.freeradius.org/list/users.html</a>

  </pre>
</blockquote>
</body>
</html>