Blame SOURCES/perl-ldap-0.56-Make-LDAP-work-after-LDAP-start_tls.patch

60da88
From be16775bdacfe19ee0af38bd157272e137581640 Mon Sep 17 00:00:00 2001
60da88
From: Peter Marschall <peter@adpm.de>
60da88
Date: Sat, 14 Dec 2013 15:17:46 +0100
60da88
Subject: [PATCH] RT#90459: LDAP.pm: make LDAPS work after LDAP+start_tls
60da88
60da88
Stop setting global SSL settings via IO::Socket::SSL::context_init()
60da88
in Net::LDAP::start_tls().
60da88
According to Steffen Ullrich, the IO::Socket::SSL maintainer, setting
60da88
the global SSL settings is not necessary.
60da88
60da88
While looking at it, Steffen found that connect_ldaps() does not make sure
60da88
the 'sslserver' argument is set to allow checking for the correct host name.
60da88
Fix this as well.
60da88
60da88
Thanks to Klara Mall for reporting the bug and to Steffen Ullrich for
60da88
the patch ideas.
60da88
---
60da88
 lib/Net/LDAP.pm | 3 ++-
60da88
 1 file changed, 2 insertions(+), 1 deletion(-)
60da88
60da88
diff --git a/lib/Net/LDAP.pm b/lib/Net/LDAP.pm
60da88
index 7ddd26a..2ee6898 100644
60da88
--- a/lib/Net/LDAP.pm
60da88
+++ b/lib/Net/LDAP.pm
60da88
@@ -186,6 +186,8 @@ sub connect_ldaps {
60da88
   # separate port from host overwriting given/default port
60da88
   $host =~ s/^([^:]+|\[.*\]):(\d+)$/$1/ and $port = $2;
60da88
 
60da88
+  $arg->{sslserver} = $host  unless defined $arg->{sslserver};
60da88
+
60da88
   $ldap->{net_ldap_socket} = IO::Socket::SSL->new(
60da88
     PeerAddr 	    => $host,
60da88
     PeerPort 	    => $port,
60da88
@@ -1080,7 +1082,6 @@ sub start_tls {
60da88
   $arg->{sslversion} = 'tlsv1'  unless defined $arg->{sslversion};
60da88
   $arg->{sslserver} = $ldap->{net_ldap_host}  unless defined $arg->{sslserver};
60da88
 
60da88
-  IO::Socket::SSL::context_init( { _SSL_context_init_args($arg) } );
60da88
   my $sock_class = ref($sock);
60da88
 
60da88
   return $mesg
60da88
-- 
60da88
2.1.0
60da88