[PATCH] send-email: try to get fqdn by running hostname --fqdn on Linux and macOS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



`hostname` is a popular command available on both Linux and macOS. As
per the man-page[1], `hostname --fqdn` command returns the fully
qualified domain name (FQDN) of the system. The current Net::Domain
perl module being used in the script for the same has been quite
unrealiable in many cases. Thankfully, we now have a better check for
valid_fqdn, which does reject the invalid FQDNs given by this module
properly, but at the same time, it will result in a fallback to
'localhost.localdomain' being used. `hostname --fqdn` has been quite
reliable (probably even more reliable than the Net::Domain module) and
before falling back to 'localhost.localdomain', we should try to use it.
Interestingly, the `hostname` command is actually used by perl modules
like Net::Domain[2] and Sys::Hostname[3] to get the hostname. So, lets
give `hostname --fqdn` a chance as well!

[1]: https://man7.org/linux/man-pages/man1/hostname.1.html
[2]: https://github.com/Perl/perl5/blob/blead/cpan/libnet/lib/Net/Domain.pm#L88
[3]: https://github.com/Perl/perl5/blob/blead/ext/Sys-Hostname/Hostname.pm#L93

Signed-off-by: Aditya Garg <gargaditya08@xxxxxxxx>
---
 git-send-email.perl | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/git-send-email.perl b/git-send-email.perl
index 55b7e00d29..735d8abc12 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1393,8 +1393,20 @@ sub maildomain_mta {
 	return $maildomain;
 }
 
+sub maildomain_hostname_command {
+	my $maildomain;
+
+	if ($^O eq 'linux' || $^O eq 'darwin') {
+		my $domain = `(hostname --fqdn) 2>/dev/null`;
+		chomp($domain);
+		$maildomain = $domain if valid_fqdn($domain);
+	}
+	return $maildomain;
+}
+
 sub maildomain {
-	return maildomain_net() || maildomain_mta() || 'localhost.localdomain';
+	return maildomain_net() || maildomain_mta() ||
+		maildomain_hostname_command || 'localhost.localdomain';
 }
 
 sub smtp_host_string {
-- 
2.49.0





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux