mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 02:21:44 +03:00
resolved: make sure that route-only domains are never added to /etc/resolv.conf
After all, /etc/resolv.conf doesn't know the concept of "route-only domains", hence the domains should really not appear there.
This commit is contained in:
parent
35ca4ce022
commit
6f7da49d00
@ -1153,7 +1153,7 @@ int manager_compile_dns_servers(Manager *m, OrderedSet **dns) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int manager_compile_search_domains(Manager *m, OrderedSet **domains) {
|
||||
int manager_compile_search_domains(Manager *m, OrderedSet **domains, int filter_route) {
|
||||
DnsSearchDomain *d;
|
||||
Iterator i;
|
||||
Link *l;
|
||||
@ -1167,6 +1167,11 @@ int manager_compile_search_domains(Manager *m, OrderedSet **domains) {
|
||||
return r;
|
||||
|
||||
LIST_FOREACH(domains, d, m->search_domains) {
|
||||
|
||||
if (filter_route >= 0 &&
|
||||
d->route_only != !!filter_route)
|
||||
continue;
|
||||
|
||||
r = ordered_set_put(*domains, d->name);
|
||||
if (r == -EEXIST)
|
||||
continue;
|
||||
@ -1177,6 +1182,11 @@ int manager_compile_search_domains(Manager *m, OrderedSet **domains) {
|
||||
HASHMAP_FOREACH(l, m->links, i) {
|
||||
|
||||
LIST_FOREACH(domains, d, l->search_domains) {
|
||||
|
||||
if (filter_route >= 0 &&
|
||||
d->route_only != !!filter_route)
|
||||
continue;
|
||||
|
||||
r = ordered_set_put(*domains, d->name);
|
||||
if (r == -EEXIST)
|
||||
continue;
|
||||
|
@ -162,7 +162,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
|
||||
int manager_is_own_hostname(Manager *m, const char *name);
|
||||
|
||||
int manager_compile_dns_servers(Manager *m, OrderedSet **servers);
|
||||
int manager_compile_search_domains(Manager *m, OrderedSet **domains);
|
||||
int manager_compile_search_domains(Manager *m, OrderedSet **domains, int filter_route);
|
||||
|
||||
DnssecMode manager_get_dnssec_mode(Manager *m);
|
||||
bool manager_dnssec_supported(Manager *m);
|
||||
|
@ -232,7 +232,7 @@ int manager_write_resolv_conf(Manager *m) {
|
||||
if (r < 0)
|
||||
return log_warning_errno(r, "Failed to compile list of DNS servers: %m");
|
||||
|
||||
r = manager_compile_search_domains(m, &domains);
|
||||
r = manager_compile_search_domains(m, &domains, false);
|
||||
if (r < 0)
|
||||
return log_warning_errno(r, "Failed to compile list of search domains: %m");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user