diff --git a/meson.build b/meson.build index 513b841ac5..d205f846c7 100644 --- a/meson.build +++ b/meson.build @@ -667,9 +667,6 @@ if fallback_hostname == '' or fallback_hostname[0] == '.' or fallback_hostname[0 endif conf.set_quoted('FALLBACK_HOSTNAME', fallback_hostname) -conf.set10('ENABLE_COMPAT_GATEWAY_HOSTNAME', get_option('compat-gateway-hostname')) -gateway_hostnames = ['_gateway'] + (conf.get('ENABLE_COMPAT_GATEWAY_HOSTNAME') == 1 ? ['gateway'] : []) - default_hierarchy = get_option('default-hierarchy') conf.set_quoted('DEFAULT_HIERARCHY_NAME', default_hierarchy, description : 'default cgroup hierarchy as string') @@ -3688,7 +3685,6 @@ status = [ 'nobody user name: @0@'.format(nobody_user), 'nobody group name: @0@'.format(nobody_group), 'fallback hostname: @0@'.format(get_option('fallback-hostname')), - 'symbolic gateway hostnames: @0@'.format(', '.join(gateway_hostnames)), 'default DNSSEC mode: @0@'.format(default_dnssec), 'default DNS-over-TLS mode: @0@'.format(default_dns_over_tls), diff --git a/meson_options.txt b/meson_options.txt index cfe11c9ae9..eed3596b9b 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -187,8 +187,6 @@ option('install-sysconfdir', type : 'boolean', value : true, option('fallback-hostname', type : 'string', value : 'localhost', description : 'the hostname used if none configured') -option('compat-gateway-hostname', type : 'boolean', value : 'false', - description : 'allow "gateway" as the symbolic name for default gateway') option('default-hierarchy', type : 'combo', choices : ['legacy', 'hybrid', 'unified'], value : 'unified', description : 'default cgroup hierarchy') diff --git a/src/basic/hostname-util.c b/src/basic/hostname-util.c index 09e49ccb7d..5c3157fdf2 100644 --- a/src/basic/hostname-util.c +++ b/src/basic/hostname-util.c @@ -212,20 +212,6 @@ bool is_localhost(const char *hostname) { endswith_no_case(hostname, ".localhost.localdomain."); } -bool is_gateway_hostname(const char *hostname) { - assert(hostname); - - /* This tries to identify the valid syntaxes for the our - * synthetic "gateway" host. */ - - return - strcaseeq(hostname, "_gateway") || strcaseeq(hostname, "_gateway.") -#if ENABLE_COMPAT_GATEWAY_HOSTNAME - || strcaseeq(hostname, "gateway") || strcaseeq(hostname, "gateway.") -#endif - ; -} - int sethostname_idempotent(const char *s) { char buf[HOST_NAME_MAX + 1] = {}; diff --git a/src/basic/hostname-util.h b/src/basic/hostname-util.h index c1e47a2a53..34819c2953 100644 --- a/src/basic/hostname-util.h +++ b/src/basic/hostname-util.h @@ -5,6 +5,7 @@ #include #include "macro.h" +#include "strv.h" bool hostname_is_set(void); @@ -19,7 +20,11 @@ char* hostname_cleanup(char *s); #define machine_name_is_valid(s) hostname_is_valid(s, false) bool is_localhost(const char *hostname); -bool is_gateway_hostname(const char *hostname); + +static inline bool is_gateway_hostname(const char *hostname) { + /* This tries to identify the valid syntaxes for the our synthetic "gateway" host. */ + return STRCASE_IN_SET(hostname, "_gateway", "_gateway."); +} int sethostname_idempotent(const char *s); diff --git a/src/resolve/resolved-dns-scope.c b/src/resolve/resolved-dns-scope.c index 666aa892ea..298ce21ae3 100644 --- a/src/resolve/resolved-dns-scope.c +++ b/src/resolve/resolved-dns-scope.c @@ -522,13 +522,8 @@ DnsScopeMatch dns_scope_good_domain( if (dns_name_endswith(domain, "invalid") > 0) return DNS_SCOPE_NO; - /* Never go to network for the _gateway domain, it's something special, synthesized locally. Note - * that we don't use is_gateway_hostname() here, since that has support for the legacy "gateway" - * hostname (without the prefix underscore), which we don't want to filter on all protocols. i.e. we - * don't want to filter "gateway" on classic DNS, since there might very well be such a host inside - * some search domain, and we shouldn't block that. We do filter it in LLMNR however (and on mDNS by - * side-effect, since it's a single-label name which mDNS doesn't accept anyway). */ - if (dns_name_equal(domain, "_gateway") > 0) + /* Never go to network for the _gateway domain, it's something special, synthesized locally. */ + if (is_gateway_hostname(domain)) return DNS_SCOPE_NO; switch (s->protocol) {