Merge branch 'tr/send-email-ssl'

SSL-related options were not passed correctly to underlying socket
layer in "git send-email".

* tr/send-email-ssl:
  send-email: set SSL options through IO::Socket::SSL::set_client_defaults
  send-email: --smtp-ssl-cert-path takes an argument
  send-email: pass Debug to Net::SMTP::SSL::new
This commit is contained in:
Junio C Hamano 2013-12-17 11:47:12 -08:00
commit 433a30d0ba

View File

@ -291,7 +291,7 @@ my $rc = GetOptions("h" => \$help,
"smtp-pass:s" => \$smtp_authpass, "smtp-pass:s" => \$smtp_authpass,
"smtp-ssl" => sub { $smtp_encryption = 'ssl' }, "smtp-ssl" => sub { $smtp_encryption = 'ssl' },
"smtp-encryption=s" => \$smtp_encryption, "smtp-encryption=s" => \$smtp_encryption,
"smtp-ssl-cert-path" => \$smtp_ssl_cert_path, "smtp-ssl-cert-path=s" => \$smtp_ssl_cert_path,
"smtp-debug:i" => \$debug_net_smtp, "smtp-debug:i" => \$debug_net_smtp,
"smtp-domain:s" => \$smtp_domain, "smtp-domain:s" => \$smtp_domain,
"identity=s" => \$identity, "identity=s" => \$identity,
@ -1214,10 +1214,14 @@ X-Mailer: git-send-email $gitversion
$smtp_server_port ||= 465; # ssmtp $smtp_server_port ||= 465; # ssmtp
require Net::SMTP::SSL; require Net::SMTP::SSL;
$smtp_domain ||= maildomain(); $smtp_domain ||= maildomain();
require IO::Socket::SSL;
# Net::SMTP::SSL->new() does not forward any SSL options
IO::Socket::SSL::set_client_defaults(
ssl_verify_params());
$smtp ||= Net::SMTP::SSL->new($smtp_server, $smtp ||= Net::SMTP::SSL->new($smtp_server,
Hello => $smtp_domain, Hello => $smtp_domain,
Port => $smtp_server_port, Port => $smtp_server_port,
ssl_verify_params()); Debug => $debug_net_smtp);
} }
else { else {
require Net::SMTP; require Net::SMTP;