summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Gernhardt <brian@gernhardtsoftware.com>2010-04-10 10:53:54 -0400
committerJunio C Hamano <gitster@pobox.com>2010-04-10 13:01:20 -0700
commit59a8630338ea0173b9777eb9b3e3c9185643efb1 (patch)
tree7e1c779ece52de3913b1a0b5f3071c9bd54cf7d6
parent68ce93307fcc0364816664114a71c58f60bbad94 (diff)
downloadgit-59a8630338ea0173b9777eb9b3e3c9185643efb1.tar.gz
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-xgit-send-email.perl11
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;
}