]> git.proxmox.com Git - pmg-api.git/commitdiff
PMG/LDAPCache.pm: cleanup LDAP options, set timeout to 10 seconds
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 22 Mar 2017 06:10:19 +0000 (07:10 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 22 Mar 2017 06:10:19 +0000 (07:10 +0100)
PMG/LDAPCache.pm

index 69b66255720b54c1a48f1cbe986f4bc0e7c72210..d9b4c2b0cf2e5b4ae27494fb3ce13d62bd9bd3d2 100755 (executable)
@@ -332,18 +332,16 @@ sub querygroups {
 sub ldap_connect {
     my ($self) = @_;
 
-    my $mode = $self->{mode};
-    my $portstr = '';
-    $portstr = ':' . $self->{port} if $self->{port};
-
-    my $serverstr = "$mode://$self->{server1}${portstr}/";
-    my $ldap = Net::LDAP->new($serverstr);
-    if(!$ldap && $self->{server2} && $self->{server2} ne '127.0.0.1')  {
-       $serverstr = "$mode://$self->{server2}${portstr}/";
-       $ldap = Net::LDAP->new($serverstr);
-    }
+    my $hosts = [ $self->{server1} ];
+
+    push @$hosts, $self->{server2} if $self->{server2};
+
+    my $opts = { timeout => 10, onerror => 'die' };
+
+    $opts->{port} = $self->{port} if $self->{port};
+    $opts->{schema} = $self->{mode};
 
-    return $ldap;
+    return Net::LDAP->new($hosts, %$opts);
 }
 
 sub ldap_connect_and_bind {