diff options
author | John Keeping <john@keeping.me.uk> | 2015-12-03 21:47:18 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-12-11 09:41:10 -0800 |
commit | 9d605249e53db69b47cdf6145ec9639a45c38100 (patch) | |
tree | 0a66aa344139009287f28414aba2f351f16959fc /git-send-email.perl | |
parent | 5cb2e162d21fa45a63f186b31970e2e9c9b10ba9 (diff) | |
download | git-9d605249e53db69b47cdf6145ec9639a45c38100.tar.gz |
send-email: enable SSL level 1 debug outputjk/send-email-ssl-errors
If a server's certificate isn't accepted by send-email, the output is:
Unable to initialize SMTP properly. Check config and use --smtp-debug.
but adding --smtp-debug=1 just produces the same output since we don't
get as far as talking SMTP.
Turning on SSL debug at level 1 gives:
DEBUG: .../IO/Socket/SSL.pm:1796: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:673: fatal SSL error: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:1780: IO::Socket::IP configuration failed
IO::Socket::SSL defines level 1 debug as "print out errors from
IO::Socket::SSL and ciphers from Net::SSLeay". In fact, it aliases
Net::SSLeay::trace which is defined to guarantee silence at level 0 and
only emit error messages at level 1, so let's enable it by default.
The modification of warnings is needed to avoid a warning about:
Name "IO::Socket::SSL::DEBUG" used only once: possible typo
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-send-email.perl')
-rwxr-xr-x | git-send-email.perl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/git-send-email.perl b/git-send-email.perl index e907e0eacf..72508bed93 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1318,6 +1318,13 @@ Message-Id: $message_id require Net::SMTP::SSL; $smtp_domain ||= maildomain(); require IO::Socket::SSL; + + # Suppress "variable accessed once" warning. + { + no warnings 'once'; + $IO::Socket::SSL::DEBUG = 1; + } + # Net::SMTP::SSL->new() does not forward any SSL options IO::Socket::SSL::set_client_defaults( ssl_verify_params()); |