(RADIATOR) Patch for Radius::Ldap.pm to support a list of ldap servers

Markus Moeller huaraz at moeller.plus.com
Thu Feb 21 14:12:39 CST 2008


Mike,

I guess you can add

if ( @hostarray > 1 ) {
..
} else {
    my $host = $hoststring;
}

to be backward compatible.

Markus

----- Original Message ----- 
From: "Mike McCauley" <mikem at open.com.au>
To: "Markus Moeller" <huaraz at moeller.plus.com>
Cc: <radiator at open.com.au>
Sent: Thursday, February 21, 2008 5:42 AM
Subject: Re: (RADIATOR) Patch for Radius::Ldap.pm to support a list of ldap 
servers


> Hello Markus,
>
> This is an interesting idea that could be useful for some people.
>
> Support for multiple hosts was added to Net::LDAP in Jan 2003. I wonder if 
> we
> can safely assume that all custemers have a later version of Net::LDAP? 
> Views
> from anyone?
>
> In the meantime, we generally intended multiple LDAP server to be handled 
> with
> multiple chained AuthBy LDAP2 clauses.
>
> Cheers.
>
>
> On Thursday 21 February 2008 08:16, Markus Moeller wrote:
>> I needed to use a list of redundant ldapservers. perl-ldap does support 
>> an
>> array of servers but Radiator doesn't. Please find below a patch which
>> allows a list of ldapservers in <AutbBy LDAP2> , etc..
>>
>> Markus
>>
>> P.S I am not too experienced with perl so the below might be easier
>> achieved.
>>
>> Markus
>>
>> --- Radiator-4.0/Radius/Ldap.pm Tue Dec 18 21:24:04 2007
>> +++ /usr/perl5/site_perl/5.8.4/Radius/Ldap.pm   Wed Feb 20 21:59:20 2008
>> @@ -202,9 +202,16 @@
>>      return 1 if $self->{ld}; # We are already connected
>>      return 0 if time < $self->{backoff_until};
>>
>> -    my $host = &Radius::Util::format_special($self->{Host});
>> +    my $hoststring = &Radius::Util::format_special($self->{Host});
>>      my $port =
>> &Radius::Util::get_port(&Radius::Util::format_special($self->{Port})); -
>> $self->{connectedHost} = "$host:$port";
>> +    my @hostarray = split(/[\s]+/,$hoststring);
>> +    my $host = \@hostarray;
>> +    if ( $hoststring =~ /:/ ) {
>> +      $self->{connectedHost} = "$hoststring";
>> +      $port='';
>> +    } else {
>> +      $self->{connectedHost} = "$hoststring:$port";
>> +    }
>>      $self->log($main::LOG_INFO, "Connecting to $self->{connectedHost}");
>>
>>      $self->{bound} = undef;
>
> -- 
> Mike McCauley                               mikem at open.com.au
> Open System Consultants Pty. Ltd            Unix, Perl, Motif, C++, WWW
> 9 Bulbul Place Currumbin Waters QLD 4223 Australia 
> http://www.open.com.au
> Phone +61 7 5598-7474                       Fax   +61 7 5598-7070
>
> Radiator: the most portable, flexible and configurable RADIUS server
> anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
> Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
> TTLS, PEAP etc on Unix, Windows, MacOS, NetWare etc.
>
> --
> 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.
> 


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