From: Lennart Poettering Date: Thu, 26 Nov 2015 23:06:19 +0000 (+0100) Subject: resolved: don't follow the global search list on local scopes X-Git-Tag: v229~265^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6627b7e2215a4f5bc44198adb111c2b05ff80970;p=thirdparty%2Fsystemd.git resolved: don't follow the global search list on local scopes It probably doesn't make sense to mix local and global configuration. Applying global search lists to local DNS servers appears unnecessary and creates problems because we'll traverse the search domains non-simultaneously on multiple scopes. Also see: https://github.com/systemd/systemd/pull/2031 --- diff --git a/src/resolve/resolved-dns-query.c b/src/resolve/resolved-dns-query.c index fe99caff371..a96cf439adc 100644 --- a/src/resolve/resolved-dns-query.c +++ b/src/resolve/resolved-dns-query.c @@ -94,31 +94,19 @@ static int dns_query_candidate_next_search_domain(DnsQueryCandidate *c) { if (c->search_domain && c->search_domain->linked) { next = c->search_domain->domains_next; - if (!next) { - /* We hit the last entry. Let's see if this - * was the per-link search domain list. If so, - * let's continue with the global one. */ - - if (c->search_domain->type == DNS_SEARCH_DOMAIN_LINK) - next = c->query->manager->search_domains; - - if (!next) /* Still no item? Then we really hit the end of the list. */ - return 0; - } + if (!next) /* We hit the end of the list */ + return 0; } else { - /* If we have, start with the per-link domains */ next = dns_scope_get_search_domains(c->scope); - if (!next) /* Fall back to the global search domains */ - next = c->scope->manager->search_domains; - - if (!next) /* OK, there's really nothing. */ + if (!next) /* OK, there's nothing. */ return 0; } dns_search_domain_unref(c->search_domain); c->search_domain = dns_search_domain_ref(next); + return 1; }