public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Jari Aalto <jari.aalto@cante•net>
To: git@vger•kernel.org
Subject: [PATCH] git-send-email.perl: add maildomain_sanitize()
Date: Tue, 13 Apr 2010 14:35:26 +0300	[thread overview]
Message-ID: <87bpdnwpoh.fsf_-_@jondo.cante.net> (raw)
In-Reply-To: 87ljcrwxni.fsf_-_@jondo.cante.net

Move duplicate maildomain checks to a single subroutine.
Require that a FQDN contains at least one period.

Signed-off-by: Jari Aalto <jari.aalto@cante•net>
---
 git-send-email.perl |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

      Here is improved version 2 (use "tab" for indentation).
 
      -- Jari
 
      >Re: [PATCH 1/3] send-email: Don't use FQDNs without a '.'
      >Junio C Hamano <gitster@pobox•com> writes:
      >> Brian Gernhardt <brian@gernhardtsoftware•com> writes:
      >
      >>  		$maildomain = $domain
      >> -			unless $^O eq 'darwin' && $domain =~ /\.local$/;
      >> +			unless $^O eq 'darwin' && $domain =~ /\.local$/
      >> +				or $domain !~ /\./;
      >
      > [Junio] It would become *much* easier to read if we stop using the statement
      > modifier, and write it in a more straightforward way:
      >
      > 	unless (($^O eq 'darwin' && $domain =~ /\.local$/)
      >         	|| $domain !~ /\./) {
      >                 $maildomain = $domain;
      > 	}
      >
      > as the condition seems to have grown large enough to exceed "by the way
      > don't do this under this narrow condition", which is what statement
      > modifiers are designed to be used.  Also mixing && and or that have
      > different precedence taxes readers' brainpower unnecessarily.
      >
      > I also think that this particular exception logic should probably be in a
      > separate helper function that is called from the two places.
      >
      > Jari, you are the last person who touched code around this area.  What do
      > you think?

diff --git a/git-send-email.perl b/git-send-email.perl
index ce569a9..0e8f18c 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -863,14 +863,28 @@ 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 maildomain_sanitize
+{
+	local $_ = shift;
+
+	#  On Mac, the the domain name is not necessarily in FQDN format
+	#  Require a period in the string
+
+	if ( $^O eq 'darwin'  and  /\.local$/ ) {
+		# Nope, pass this one.
+	}
+	elsif ( /\./ ) {
+		$_;
+	}
+}
+
 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 = maildomain_sanitize($domain);
 	}
 
 	return $maildomain;
@@ -887,8 +901,7 @@ sub maildomain_mta
 				my $domain = $smtp->domain;
 				$smtp->quit;
 
-				$maildomain = $domain
-					unless $^O eq 'darwin' && $domain =~ /\.local$/;
+				$maildomain = maildomain_sanitize($domain);
 
 				last if $maildomain;
 			}
-- 
1.7.0

  reply	other threads:[~2010-04-13 11:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-09  5:11 [PATCH 0/3] send-email: --smtp-domain improvements Brian Gernhardt
2010-04-09  5:11 ` [PATCH 1/3] send-email: Don't use FQDNs without a '.' Brian Gernhardt
2010-04-09  5:36   ` Junio C Hamano
2010-04-13  8:43     ` [PATCH] git-send-email.perl: Add sub maildomain_sanitize Jari Aalto
2010-04-13 11:35       ` Jari Aalto [this message]
2010-04-15 12:47         ` [PATCH] git-send-email.perl: add maildomain_sanitize() Jakub Narebski
2010-04-16 15:49           ` [PATCH v2] git-send-email.perl: Add sub maildomain_sanitize Jari Aalto
2010-04-16 16:11             ` Jakub Narebski
2010-04-16 17:00               ` Start encouraging English.pm (Was: [PATCH v2] git-send-email.perl: Add sub maildomain_sanitize) Jari Aalto
2010-04-09  5:11 ` [PATCH 2/3] Document send-email --smtp-domain Brian Gernhardt
2010-04-09  5:11 ` [PATCH 3/3] send-email: Add sendemail.smtpdomain Brian Gernhardt
2010-04-09  6:56   ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bpdnwpoh.fsf_-_@jondo.cante.net \
    --to=jari.aalto@cante$(echo .)net \
    --cc=git@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox