From 73dc7393a40391c5cae9d398135813a3bc45df47 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Fri, 25 Sep 2009 13:05:28 -0500 Subject: Avoid long hang on Mac OS X when hostname is *.local by not calling gethostbyname *.local names are special on darwin. If we call gethostbyname below, it may hang while waiting for another, non-existent computer to respond. --- Net/Domain.pm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Net/Domain.pm b/Net/Domain.pm index 330909d..017cc92 100644 --- a/Net/Domain.pm +++ b/Net/Domain.pm @@ -16,7 +16,7 @@ use Net::Config; @ISA = qw(Exporter); @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname); -$VERSION = "2.20"; +$VERSION = "2.21"; my ($host, $domain, $fqdn) = (undef, undef, undef); @@ -222,6 +222,13 @@ sub domainname { if (defined $fqdn); _hostname(); + + # *.local names are special on darwin. If we call gethostbyname below, it + # may hang while waiting for another, non-existent computer to respond. + if($^O eq 'darwin' && $host =~ /\.local$/) { + return $host; + } + _hostdomain(); # Assumption: If the host name does not contain a period -- cgit v1.2.3-24-ge0c7