[PATCH v3 2/4] send-email: Don't use FQDNs without a '.'
From: Brian Gernhardt <hidden>
Date: 2016-06-15 22:48:35
Subsystem:
the rest · Maintainer:
Linus Torvalds
Although Net::Domain::domainname attempts to be very thorough, the host's configuration can still refuse to give a FQDN. Check to see if what we receive contains a dot as a basic sanity check. Since the same condition is used twice and getting complex, let's move it to a new function. Signed-off-by: Brian Gernhardt <redacted> --- git-send-email.perl | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index 26fe624..1e9bec1 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl@@ -861,13 +861,17 @@ sub sanitize_address { # This maildomain*() code is based on ideas in Perl library Test::Reporter # /usr/share/perl5/Test/Reporter/Mail/Util.pm ==> sub _maildomain () +sub valid_fqdn { + my $domain = shift; + return !($^O eq 'darwin' && $domain =~ /\.local$/) && $domain =~ /\./; +} + sub maildomain_net { my $maildomain; if (eval { require Net::Domain; 1 }) { my $domain = Net::Domain::domainname(); - $maildomain = $domain - unless $^O eq 'darwin' && $domain =~ /\.local$/; + $maildomain = $domain if valid_fqdn($domain); } return $maildomain;
@@ -883,8 +887,7 @@ sub maildomain_mta { my $domain = $smtp->domain; $smtp->quit; - $maildomain = $domain - unless $^O eq 'darwin' && $domain =~ /\.local$/; + $maildomain = $domain if valid_fqdn($domain); last if $maildomain; }
--
1.7.1.rc0.251.g42f41