diff options
author | David R. Hedges <omegadrh@users.noreply.github.com> | 2016-02-18 21:31:38 -0600 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2016-04-04 13:28:57 -0400 |
commit | 63003524cb7c27b50583cc4d90b5d81af5f7a7f6 (patch) | |
tree | 1c2923d32a48f3db1997a4ba38e450b1e976a26a /src | |
parent | 48ddca5f3559c02f06cd03006eb11c6bab1a53e6 (diff) |
*.localdomain != localhost
".localdomain" is not a reserved suffix (or prefix). I'm not aware of any
product expecting *.localdomain to resolve to localhost, however I am aware of
at least one product that defaults to ".localdomain" as its DNS suffix provided
via DHCP (pfSense). This leads to unexpected results when attempting to access
a host that's offline (or a host that's online, when nsswitch.conf is
[mis-]configured to have myhostname ahead of DNS).
Operate on:
localhost (and localhost.)
*.localhost (and *.localhost.)
localhost.localdomain (and localhost.localdomain.)
*.localhost.localdomain (and *.localhost.localdomain.)
We should not cover:
*.localdomain (nor *.localdomain.)
localdomain (nor localdomain.)
Diffstat (limited to 'src')
-rw-r--r-- | src/basic/hostname-util.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/basic/hostname-util.c b/src/basic/hostname-util.c index 7bb23448ed..4fe6a725aa 100644 --- a/src/basic/hostname-util.c +++ b/src/basic/hostname-util.c @@ -150,16 +150,16 @@ bool is_localhost(const char *hostname) { assert(hostname); /* This tries to identify local host and domain names - * described in RFC6761 plus the redhatism of .localdomain */ + * described in RFC6761 plus the redhatism of localdomain */ return strcaseeq(hostname, "localhost") || strcaseeq(hostname, "localhost.") || - strcaseeq(hostname, "localdomain.") || - strcaseeq(hostname, "localdomain") || + strcaseeq(hostname, "localhost.localdomain") || + strcaseeq(hostname, "localhost.localdomain.") || endswith_no_case(hostname, ".localhost") || endswith_no_case(hostname, ".localhost.") || - endswith_no_case(hostname, ".localdomain") || - endswith_no_case(hostname, ".localdomain."); + endswith_no_case(hostname, ".localhost.localdomain") || + endswith_no_case(hostname, ".localhost.localdomain."); } bool is_gateway_hostname(const char *hostname) { |