Use Net::LDAP high availability system

%ENV was not shared
This commit is contained in:
Xavier Guimard 2009-03-08 17:37:31 +00:00
parent 2b6a1d94a5
commit e5e80709e6
3 changed files with 16 additions and 11 deletions

View File

@ -449,7 +449,8 @@ sub safe {
}";
$self->lmLog( $@, 'error' ) if ($@);
}
$safe->share( '&encode_base64', '%ENV', @t );
$safe->share_from( 'main', ['%ENV'] );
$safe->share( '&encode_base64', @t );
return $safe;
}

View File

@ -26,6 +26,7 @@ sub new {
}
my $useTls = 0;
my $tlsParam;
my @servers = ();
foreach my $server ( split /[\s,]+/, $portal->{ldapServer} ) {
if ( $server =~ m{^ldap\+tls://([^/]+)/?\??(.*)$} ) {
$useTls = 1;
@ -35,13 +36,13 @@ sub new {
else {
$useTls = 0;
}
last
if $self = Net::LDAP->new(
$server,
port => $portal->{ldapPort},
onerror => undef,
);
push @servers, $server;
}
$self = Net::LDAP->new(
\@servers,
onerror => undef,
( $portal->{ldapPort} ? ( port => $portal->{ldapPort} ) : () ),
);
unless ($self) {
$portal->lmLog( $@, 'error' );
return 0;

View File

@ -78,15 +78,18 @@ sub try {
# return true if an other module is available
sub next {
my ( $self, $type ) = @_;
if($self->{stack}->[$type]->[0]->{n} eq $self->{stack}->[1-$type]->[0]->{n} and $self->{stack}->[1-$type]->[1]) {
shift @{ $self->{stack}->[1-$type] };
if ( $self->{stack}->[$type]->[0]->{n} eq
$self->{stack}->[ 1 - $type ]->[0]->{n}
and $self->{stack}->[ 1 - $type ]->[1] )
{
shift @{ $self->{stack}->[ 1 - $type ] };
}
shift @{ $self->{stack}->[$type] };
return 0 unless ( @{ $self->{stack}->[$type] } );
%{ $self->{p} } = (
%{ $self->{p} },
%{ $self->{p}->{multi}->{$self->{stack}->[$type]->[0]->{n}} }
) if ( $self->{p}->{multi}->{$self->{stack}->[$type]->[0]->{n}} );
%{ $self->{p}->{multi}->{ $self->{stack}->[$type]->[0]->{n} } }
) if ( $self->{p}->{multi}->{ $self->{stack}->[$type]->[0]->{n} } );
return 1;
}