diff --git a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Simple.pm b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Simple.pm index 091c210a5..c41a15a66 100644 --- a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Simple.pm +++ b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Simple.pm @@ -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; } diff --git a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_LDAP.pm b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_LDAP.pm index 7a5556ab4..8d9d92011 100644 --- a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_LDAP.pm +++ b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_LDAP.pm @@ -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; diff --git a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_Multi.pm b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_Multi.pm index 1f78147c9..5b078ec7a 100644 --- a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_Multi.pm +++ b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/_Multi.pm @@ -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; }