send-email: fix obscure error when encryption=tls and smtp cannot connect
authorYakov Lerner <iler.ml@gmail.com>
Fri, 25 Sep 2009 22:10:21 +0000 (15:10 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 25 Sep 2009 22:10:59 +0000 (15:10 -0700)
When encryption=tls and we cannot connect to the SMTP server,
git-send-email was printing an obtuse perl error:

  Can't call method "command" on an undefined value
  at git-send-email line 927.

This can occur when smtp host or port is misspelled, or the network
is down, and encryption has been set to tls.

Instead we expect some familiar "Cannot connect to SERVER:PORT"
message.  Fix it to print normal "smtp can't connect" diagnostics.

Signed-off-by: Yakov Lerner <iler.ml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-send-email.perl

index 0700d80..dd821f7 100755 (executable)
@@ -921,7 +921,7 @@ X-Mailer: git-send-email $gitversion
                        $smtp ||= Net::SMTP->new((defined $smtp_server_port)
                                                 ? "$smtp_server:$smtp_server_port"
                                                 : $smtp_server);
-                       if ($smtp_encryption eq 'tls') {
+                       if ($smtp_encryption eq 'tls' && $smtp) {
                                require Net::SMTP::SSL;
                                $smtp->command('STARTTLS');
                                $smtp->response();