(RADIATOR) Error from AuthLDAP2.pm in Radiator 3.9

Hugh Irvine hugh at open.com.au
Mon Feb 28 11:12:05 CST 2005


Hello Kenny -

There have been some changes in the AuthBy LDAP2 clause, that is why I 
mentioned the latest release.

I am not aware of any specific bugs however.

All I can suggest is that you set up a test environment so you can 
troubleshoot the problem.

Perhaps Mike has further suggestions?

regards

Hugh


On 28 Feb 2005, at 13:21, Kenny Kwok wrote:

> Hi Irvine,
>
>    Since the ERROR statement is quite expressive that addressed a 
> particular problem in line 118 of the LDAP2.pm module,
> would there be any known bugs/problems there for our reported case?
>
>    As we are just using the AuthBy LDAP2, we're not familier with 
> what's inside that module.
> Is there any suspected cause or insight from your professional point 
> of view? For the debug message you have mentions,
> we still dunno where to get start with~ and it is really too difficult 
> for us to setup a profiling configuration in a production
> environment.
>
>    Thank you for your help, and waiting for your further 
> finding/suggestions.
>
> Regards,
> K.Kwok
>
> Hugh Irvine wrote:
>
>>
>> Hello Kenny -
>>
>> All I can suggest is that you add some debug messages to your hook so 
>> you can see what is happening.
>>
>> There are some examples showing how to do this in "goodies/hooks.txt".
>>
>> BTW - the latest version is Radiator 3.11 (plus patches).
>>
>> regards
>>
>> Hugh
>>
>>
>> On 28 Feb 2005, at 05:30, Kenny Kwok wrote:
>>
>>> Hi,
>>>
>>>    Our radiator system (v3.9) was working fine with LDAP before, but 
>>> we encountered
>>> problems yesterday and found the following error from the radiator 
>>> log file:
>>>
>>> Mon Feb 28 03:01:37 2005 712786: ERR: Error in PreAuthHook(): Can't 
>>> use an undefined value as a symbol reference at /usr/lib/perl5/s
>>> ite_perl/5.8.0/Radius/AuthLDAP2.pm line 118, <DATA> line 450.
>>>
>>> Do you know what's wrong with it?
>>> The server was working properly as expected before, but failed to 
>>> work with LDAP yesterday.
>>> At that moment, our network is normal, we can manually connect to 
>>> our LDAP server from the radiator machine.
>>> We finally restarted the radiator machine and all seems 'normal' 
>>> again.
>>>
>>>
>>> For your further information, here are the code and configuration we 
>>> have, for your investigation:
>>>
>>> 1. The AuthLDAP2.pm in our radiator v3.9, line 112-122:
>>> === quote start ===
>>> sub reconnect
>>> {
>>>    my ($self) = @_;
>>>
>>>    # Some LDAP servers (notably imail) disconnect us after an unbind
>>>    # so we see if we are still connected now
>>>    if ($self->{ld} && !getpeername($self->{ld}->{net_ldap_socket}))
>>>    {
>>>        close($self->{ld}->{net_ldap_socket});
>>>        $self->{ld} = undef;
>>>    }
>>> === quote end ===
>>> There seems to be error in the line  "if ($self->{ld} && 
>>> !getpeername($self->{ld}->{net_ldap_socket}))"
>>>
>>> 2. Our AuthBy LDAP2 Clause defined in the configuration file:
>>> === LDAP_19_Dippping Auth quote start ===
>>> <AuthBy LDAP2>
>>>        Identifier LDAP_19_Dipping
>>>        AuthenticateAccounting
>>>        Host XXXXXXXXX
>>>        Port 389
>>>        AuthDN XXXXXXXXXX
>>>        AuthPassword XXXXXXXXXX
>>>        BaseDN XXXXXXXXXX
>>>        Scope one
>>>        PasswordAttr
>>>        SearchFilter (smcAMSISDN=%{Pre-Calling-Station-Id})
>>>        AuthAttrDef 
>>> smcSubscriberNumber,Post-Calling-Station-Id,request
>>>        Timeout 2
>>>        FailureBackoffTime 0
>>> </AuthBy LDAP2>
>>> === LDAP_19_Dipping Auth quote end ===
>>> This authby clause will only be called inside a PreAuthHook function 
>>> in a particular Handler.
>>>
>>> 3. The PreAuthHook code we have be defined, which is working 
>>> properly in our system:
>>> === PreAuthHook quote start ===
>>> sub
>>> {
>>>    my $p = ${$_[0]};
>>>    my $rp = ${$_[1]};
>>>    my $code = $p->code();
>>>    # Only deal with accounting requests
>>>    return unless ($code eq 'Accounting-Request');
>>>    # ...
>>>
>>>                $p->change_attr('Pre-Calling-Station-Id', 
>>> 'XXXXXXXXXX');
>>>                my $LDAP_Identifier = "LDAP_19_Dipping";
>>>                my $authbyLDAP = 
>>> Radius::AuthGeneric::find($LDAP_Identifier);
>>>                my $result = $authbyLDAP->findUser('BBQ', $p);
>>>    # ...
>>>    return;
>>> }
>>> === PreAuthHook quote end ===
>>>
>>>
>>> Thank you very much.
>>>
>>> Regards,
>>> Kenny Kwok
>>>
>>> -- 
>>> 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.
>>>
>>>
>>
>> NB: I am travelling this week, so there may be delays in our 
>> correspondence.
>>
>
>

NB: I am travelling this week, so there may be delays in our 
correspondence.

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
-
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.

--
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