[PATCH v2 1/3] send-email: Don't use FQDNs without a '.'
- From
Brian Gernhardt <brian@gernhardtsoftware.com>
- Date
- Apr 9, 2010, 15:42 UTC
- Message-ID
- <1270827746-29229-1-git-send-email-brian@gernhardtsoftware.com>
- In-Reply-To
- <1270827245-28958-1-git-send-email-brian@gernhardtsoftware.com>
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> --- git-send-email.perl | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl index ce569a9..f491d44 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -863,14 +863,19 @@ 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 = $_[0]; + 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; @@ -887,8 +892,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.243.g2ce66