summaryrefslogtreecommitdiff
path: root/src/basic/hostname-util.c
diff options
context:
space:
mode:
authorDavid R. Hedges <omegadrh@users.noreply.github.com>2016-02-18 21:31:38 -0600
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-04 13:28:57 -0400
commit63003524cb7c27b50583cc4d90b5d81af5f7a7f6 (patch)
tree1c2923d32a48f3db1997a4ba38e450b1e976a26a /src/basic/hostname-util.c
parent48ddca5f3559c02f06cd03006eb11c6bab1a53e6 (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/basic/hostname-util.c')
-rw-r--r--src/basic/hostname-util.c10
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) {