send-email: provide port separately from hostname

If the SMTP port is provided as part of the hostname to Net::SMTP, it passes
the combined string to the SASL provider; this causes GSSAPI authentication to
fail since Kerberos does not want the port information.  Instead, pass the port
as a separate argument as is done for SSL connections.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
brian m. carlson 2013-07-04 22:04:52 +00:00 committed by Junio C Hamano
parent 81a199bb1c
commit 1a741bf73f

View File

@ -1199,9 +1199,11 @@ X-Mailer: git-send-email $gitversion
else { else {
require Net::SMTP; require Net::SMTP;
$smtp_domain ||= maildomain(); $smtp_domain ||= maildomain();
$smtp ||= Net::SMTP->new(smtp_host_string(), $smtp_server_port ||= 25;
$smtp ||= Net::SMTP->new($smtp_server,
Hello => $smtp_domain, Hello => $smtp_domain,
Debug => $debug_net_smtp); Debug => $debug_net_smtp,
Port => $smtp_server_port);
if ($smtp_encryption eq 'tls' && $smtp) { if ($smtp_encryption eq 'tls' && $smtp) {
require Net::SMTP::SSL; require Net::SMTP::SSL;
$smtp->command('STARTTLS'); $smtp->command('STARTTLS');