diff options
author | Brian Gernhardt <brian@gernhardtsoftware.com> | 2010-04-10 18:53:54 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-04-11 00:01:20 +0400 |
commit | 59a8630338ea0173b9777eb9b3e3c9185643efb1 (patch) | |
tree | 7e1c779ece52de3913b1a0b5f3071c9bd54cf7d6 | |
parent | 68ce93307fcc0364816664114a71c58f60bbad94 (diff) |
send-email: Don't use FQDNs without a '.'
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 <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | 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 f8d86ea9a2..df83f0aa10 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -852,13 +852,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; @@ -874,8 +878,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; } |