From c423290c20a482c6984df52999eacf2a5242d7f3 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 8 Mar 2007 02:43:43 +0000 Subject: Bug 367480: [LDAP] Try a list of servers in order until we connect successfully Patch By Tony Bajan r=mkanat, a=mkanat --- Bugzilla/Auth/Verify/LDAP.pm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'Bugzilla/Auth') diff --git a/Bugzilla/Auth/Verify/LDAP.pm b/Bugzilla/Auth/Verify/LDAP.pm index 343f7952c..0176abdcb 100644 --- a/Bugzilla/Auth/Verify/LDAP.pm +++ b/Bugzilla/Auth/Verify/LDAP.pm @@ -37,6 +37,7 @@ use fields qw( use Bugzilla::Constants; use Bugzilla::Error; +use Bugzilla::Util; use Net::LDAP; @@ -134,11 +135,15 @@ sub ldap { my ($self) = @_; return $self->{ldap} if $self->{ldap}; - my $server = Bugzilla->params->{"LDAPserver"}; - ThrowCodeError("ldap_server_not_defined") unless $server; + my @servers = split(/[\s,]+]/, Bugzilla->params->{"LDAPserver"}); + ThrowCodeError("ldap_server_not_defined") unless @servers; - $self->{ldap} = new Net::LDAP($server) - || ThrowCodeError("ldap_connect_failed", { server => $server }); + foreach (@servers) { + $self->{ldap} = new Net::LDAP(trim($_)); + last if $self->{ldap}; + } + ThrowCodeError("ldap_connect_failed", { server => join(", ", @servers) }) + unless $self->{ldap}; # try to start TLS if needed if (Bugzilla->params->{"LDAPstarttls"}) { -- cgit v1.2.3-24-g4f1b