[RADIATOR] preClientHook problem using ClientListSQL from version 3.15 to version 4.3.1
Hugh Irvine
hugh at open.com.au
Fri Jan 9 16:29:28 CST 2009
Hello Dario -
The NAS-IP-Address and NAS-Port attributes are normally in clear and
available to a PreClientHook and/or ClientHook.
Both PreClientHook and ClientHook are global configuration options in
the configuration file - they don't need to be defined in ClientListSQL.
reagrds
Hugh
On 10 Jan 2009, at 00:27, Dario Aguilar wrote:
>
> Hi Hugh,
> As you can see in the script, we need to use the
> 'NAS-IP-Address' and 'NAS-Port' attributes in our preClientHook.cfg
> and both
> values will not be decrypted because this should be done now in a
> context of
> a particular Client. The problem is that we cannot declare the
> parameter
> ClientHook into the ClientListSQL clause because this dont even
> exist so I
> don´t know how can I call preClientHook script to execute for all
> our SQL
> clients and not to each one in particular. Maybe Mikey´s added
> support for
> ClientHook in ClientList SQLClientHook should help us to resolve
> this but
> how can we implement this to satisfy our needs correctly?
>
> best regards,
>
> Dario.
>
>
> Hugh Irvine wrote:
>>
>>
>> Hello Dario -
>>
>> Can you please tell me what problems you are having?
>>
>> regards
>>
>> Hugh
>>
>>
>> On 8 Jan 2009, at 04:49, Dario Aguilar wrote:
>>
>>>
>>> Hi, first of all I want to clarify that I am a new user of Radiator
>>> and my
>>> knowledge of Perl language is very poor. We are trying to move from
>>> version
>>> 3.15 to 4.3.1 and some problems a problem appered to us with the old
>>> Global
>>> "preClientHook" statement in the new version. How should I call
>>> PreClientHook.cfg to work in using ClientListSQL ?. I´ve already
>>> finish
>>> reading the revision history of versions 4.3 and 4.3.1 and the
>>> reference
>>> manual but I still have very clear how to implement this in our
>>> server.
>>>
>>> Our radius.conf looks something like this:
>>> -------------------------------------------------------------
>>> <ClientListSQL>
>>> DBSource dbi:Oracle:%{GlobalVar:DBInstance}
>>> DBUsername %{GlobalVar:DBUsername}
>>> DBAuth %{GlobalVar:DBAuth}
>>> DBSource dbi:Oracle:%{GlobalVar:DBInstance}
>>> DBUsername %{GlobalVar:DBUsername}
>>> DBAuth %{GlobalVar:DBAuth}
>>> GetClientQuery SELECT nas_ip_address,secret from
>>> tbl_radclient WHERE nas_ip_address IS NOT NULL and secret IS NOT
>>> NULL
>>> BackupFilename
>>> %D/clientlist.%{GlobalVar:CodeType}.%{GlobalVar:IpAddress}.dat
>>> RefreshPeriod 3600
>>> Timeout 2
>>> FailureBackoffTime 0
>>> ConnectionHook file:"%D/ConnectionHook.cfg"
>>> </ClientListSQL>
>>>
>>> PreClientHook file:"%D/PreClientHook.cfg"
>>> -------------------------------------------------
>>>
>>> PreClientHook.cfg----->>>
>>>
>>> sub {
>>> my $p=${$_[0]};
>>> my $nasip=$p->get_attr('NAS-IP-Address');
>>> my $ip=&Radius::Util::format_special('%c', $p);
>>> my $nasport=$p->get_attr('NAS-Port');
>>> my $callid=$p->get_attr('Calling-Station-Id');
>>>
>>> &main::log($main::LOG_DEBUG,'Into PreClientHook');
>>> &main::log($main::LOG_DEBUG,"NASIP=[$nasip] NASPORT=[$nasport]
>>> SOURCE_IP=[$ip] CallId=[$callid]");
>>> if($ip ne '192.168.0.1' and $ip ne '192.168.0.2') {
>>> $p->change_attr('NAS-IP-Address',$ip) if $nasip ne
>>> $ip;
>>> }
>>>
>>> $p->add_attr('NAS-Port',$callid) unless defined $nasport;
>>> $p->delete_attr('State');
>>> if ($p->code eq 'Accounting-Request' &&
>>> $p->get_attr('Acct-Status-Type') eq 'Stop') {
>>> my %ascend2ietf = (
>>> 'remoteEndHungup' => 'User-Request',
>>> 'pppRcvTerminate' => 'User-Request',
>>> 'sessTimeOut' => 'Session-Timeout',
>>> '240' => 'Host-Request',
>>> );
>>>
>>> my $ascend_disconnect_cause =
>>> $p->get_attr('Ascend-Disconnect-Cause');
>>> if($ascend_disconnect_cause) {
>>> my $newval=
>>> $ascend2ietf{$ascend_disconnect_cause};
>>> $newval='Lost-Carrier'
>>> unless defined $newval;
>>> $p->change_attr('Acct-Terminate-Cause',
>>> $newval);
>>> }
>>> }
>>> }
>>> -------------------------------------------
>>>
>>> thanks,
>>> Dario Aguilar
>>> --
>>> View this message in context:
>>> http://www.nabble.com/preClientHook-problem-using-ClientListSQL-from-version-3.15-to-version-4.3.1-tp21336689p21336689.html
>>> Sent from the Radiator - General mailing list archive at Nabble.com.
>>>
>>>
>>> _______________________________________________
>>> radiator mailing list
>>> radiator at open.com.au
>>> http://www.open.com.au/mailman/listinfo/radiator
>>
>>
>>
>> NB:
>>
>> Have you read the reference manual ("doc/ref.html")?
>> Have you searched the mailing list archive
>> (www.open.com.au/archives/radiator)?
>> Have you had a quick look on Google (www.google.com)?
>> Have you included a copy of your configuration file (no secrets),
>> together with a trace 4 debug showing what is happening?
>> Have you checked the RadiusExpert wiki:
>> http://www.open.com.au/wiki/index.php/Main_Page
>>
>> --
>> Radiator: the most portable, flexible and configurable RADIUS server
>> anywhere. Available on *NIX, *BSD, Windows, MacOS X.
>> Includes support for reliable RADIUS transport (RadSec),
>> and DIAMETER translation agent.
>> -
>> Nets: internetwork inventory and management - graphical, extensible,
>> flexible with hardware, software, platform and database independence.
>> -
>> CATool: Private Certificate Authority for Unix and Unix-like systems.
>>
>>
>>
>> _______________________________________________
>> radiator mailing list
>> radiator at open.com.au
>> http://www.open.com.au/mailman/listinfo/radiator
>>
>>
>
> --
> View this message in context: http://www.nabble.com/preClientHook-problem-using-ClientListSQL-from-version-3.15-to-version-4.3.1-tp21336689p21372284.html
> Sent from the Radiator - General mailing list archive at Nabble.com.
>
>
> _______________________________________________
> radiator mailing list
> radiator at open.com.au
> http://www.open.com.au/mailman/listinfo/radiator
NB:
Have you read the reference manual ("doc/ref.html")?
Have you searched the mailing list archive (www.open.com.au/archives/radiator)?
Have you had a quick look on Google (www.google.com)?
Have you included a copy of your configuration file (no secrets),
together with a trace 4 debug showing what is happening?
Have you checked the RadiusExpert wiki:
http://www.open.com.au/wiki/index.php/Main_Page
--
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
Includes support for reliable RADIUS transport (RadSec),
and DIAMETER translation agent.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
-
CATool: Private Certificate Authority for Unix and Unix-like systems.
More information about the radiator
mailing list