13dfe3
From 5f39e47e30390af4288acf47a6d342874a803cbf Mon Sep 17 00:00:00 2001
13dfe3
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
13dfe3
Date: Wed, 21 Mar 2018 14:54:07 +0100
13dfe3
Subject: [PATCH 4/4] use SNI for SSL support in SMTP
13dfe3
MIME-Version: 1.0
13dfe3
Content-Type: text/plain; charset=UTF-8
13dfe3
Content-Transfer-Encoding: 8bit
13dfe3
13dfe3
Ported to Net::SMTP as found in Perl 5.16.3 from libnet upstream
13dfe3
commit:
13dfe3
13dfe3
commit 50c6fd25f2958e6300ec8377ab40c3f1a23bd9fd
13dfe3
Author: Steffen Ullrich <Steffen_Ullrich@genua.de>
13dfe3
Date:   Fri Nov 28 11:47:16 2014 +0100
13dfe3
13dfe3
    - model SSL support for Net::NNTP after Net::SMTP, i.e. upgrade to SSL class instead of using IO::Socket::SSL in plain and SSL mode
13dfe3
    - use SNI for SSL support in SMTP, NNTP, POP3, FTP by default
13dfe3
13dfe3
commit f2756a6b81ebfadbd1ce318879c20b6519207c49
13dfe3
Author: Steffen Ullrich <Steffen_Ullrich@genua.de>
13dfe3
Date:   Sat Nov 29 17:13:58 2014 +0100
13dfe3
13dfe3
    SSL support: use SNI only if supported by IO::Socket::SSL (i.e. openssl version>=1)
13dfe3
13dfe3
Other protocols excluded.
13dfe3
13dfe3
Signed-off-by: Petr Písař <ppisar@redhat.com>
13dfe3
---
13dfe3
 cpan/libnet/Net/SMTP.pm | 6 ++++--
13dfe3
 1 file changed, 4 insertions(+), 2 deletions(-)
13dfe3
13dfe3
diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
13dfe3
index 6475c86..d207c3c 100644
13dfe3
--- a/cpan/libnet/Net/SMTP.pm
13dfe3
+++ b/cpan/libnet/Net/SMTP.pm
13dfe3
@@ -71,8 +71,9 @@ sub new {
13dfe3
     unless defined $obj;
13dfe3
 
13dfe3
   ${*$obj}{'net_smtp_arg'} = \%arg;
13dfe3
+  ${*$obj}{'net_smtp_host'} = $host;
13dfe3
   if ($arg{SSL}) {
13dfe3
-    Net::SMTP::_SSL->start_SSL($obj,SSL_verifycn_name => $host,%arg)
13dfe3
+    Net::SMTP::_SSL->start_SSL($obj,%arg)
13dfe3
       or return;
13dfe3
   }
13dfe3
 
13dfe3
@@ -86,7 +87,6 @@ sub new {
13dfe3
   }
13dfe3
 
13dfe3
   ${*$obj}{'net_smtp_exact_addr'} = $arg{ExactAddresses};
13dfe3
-  ${*$obj}{'net_smtp_host'}       = $host;
13dfe3
 
13dfe3
   (${*$obj}{'net_smtp_banner'}) = $obj->message;
13dfe3
   (${*$obj}{'net_smtp_domain'}) = $obj->message =~ /\A\s*(\S+)/;
13dfe3
@@ -575,6 +575,8 @@ sub _STARTTLS { shift->command("STARTTLS", @_)->response() == CMD_OK }
13dfe3
     delete @arg{ grep { !m{^SSL_} } keys %arg };
13dfe3
     ( $arg{SSL_verifycn_name} ||= $smtp->host )
13dfe3
 	=~s{(?
13dfe3
+    $arg{SSL_hostname} = $arg{SSL_verifycn_name}
13dfe3
+       if ! defined $arg{SSL_hostname} && $class->can_client_sni;
13dfe3
     $arg{SSL_verifycn_scheme} ||= 'smtp';
13dfe3
     $arg{SSL_verify_mode} ||= IO::Socket::SSL::SSL_VERIFY_PEER();
13dfe3
     my $ok = $class->SUPER::start_SSL($smtp,%arg);
13dfe3
-- 
13dfe3
2.14.3
13dfe3