(RADIATOR) Error from AuthLDAP2.pm in Radiator 3.9

Kenny Kwok kennyk at unitechnetworks.com
Sun Feb 27 22:30:55 CST 2005


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.


More information about the radiator mailing list