Re: [PATCH v4 1/3] send-mail: improve checks for valid_fqdn
- From
Aditya Garg <gargaditya08@live.com>
- Date
- May 7, 2025, 12:48 UTC
- Message-ID
- <PN3PR01MB9597715ABF9B773D4E5BE649B888A@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>
- In-Reply-To
- <PN3PR01MB95970B9EA9BCAFA8A4140F70B888A@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>
Show 18 quoted lines
> ---
> git-send-email.perl | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 4215f8f7e9..17d26dffde 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -1359,7 +1359,8 @@ sub process_address_list {
>
> sub valid_fqdn {
> my $domain = shift;
> - return defined $domain && !($^O eq 'darwin' && $domain =~ /\.local$/) && $domain =~ /\./;
> + return defined $domain && !($^O eq 'darwin' && $domain =~ /\.local$/)
> + && $domain =~ /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)(\.(?!-)[A-Za-z0-9-]{1,63}(?<!-))*$/;
> }
>
> sub maildomain_net {FWIW, if you wanna test this regexp, this simple perl script could help:
---->8---- #!/usr/bin/perl
my @domains = ("macbook",
"example.com",
"-bad.com",
"too..many.dots",
"good-domain.org",
"someone.-example.com",
"some.hdhd-.com");foreach my $d (@domains) {
if ($d =~ /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)(\.(?!-)[A-Za-z0-9-]{1,63}(?<!-))*$/) {
print "$d => Valid\n";
} else {
print "$d => Invalid\n";
}
}
----------Also I am thinking of using `hostname -f` as a method to be used on Linux and macOS before using the Net::Domain library.