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;
|
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;
|
DnsSearchDomain *d;
|
||||||
Iterator i;
|
Iterator i;
|
||||||
Link *l;
|
Link *l;
|
||||||
@ -1167,6 +1167,11 @@ int manager_compile_search_domains(Manager *m, OrderedSet **domains) {
|
|||||||
return r;
|
return r;
|
||||||
|
|
||||||
LIST_FOREACH(domains, d, m->search_domains) {
|
LIST_FOREACH(domains, d, m->search_domains) {
|
||||||
|
|
||||||
|
if (filter_route >= 0 &&
|
||||||
|
d->route_only != !!filter_route)
|
||||||
|
continue;
|
||||||
|
|
||||||
r = ordered_set_put(*domains, d->name);
|
r = ordered_set_put(*domains, d->name);
|
||||||
if (r == -EEXIST)
|
if (r == -EEXIST)
|
||||||
continue;
|
continue;
|
||||||
@ -1177,6 +1182,11 @@ int manager_compile_search_domains(Manager *m, OrderedSet **domains) {
|
|||||||
HASHMAP_FOREACH(l, m->links, i) {
|
HASHMAP_FOREACH(l, m->links, i) {
|
||||||
|
|
||||||
LIST_FOREACH(domains, d, l->search_domains) {
|
LIST_FOREACH(domains, d, l->search_domains) {
|
||||||
|
|
||||||
|
if (filter_route >= 0 &&
|
||||||
|
d->route_only != !!filter_route)
|
||||||
|
continue;
|
||||||
|
|
||||||
r = ordered_set_put(*domains, d->name);
|
r = ordered_set_put(*domains, d->name);
|
||||||
if (r == -EEXIST)
|
if (r == -EEXIST)
|
||||||
continue;
|
continue;
|
||||||
|
@ -162,7 +162,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
|
|||||||
int manager_is_own_hostname(Manager *m, const char *name);
|
int manager_is_own_hostname(Manager *m, const char *name);
|
||||||
|
|
||||||
int manager_compile_dns_servers(Manager *m, OrderedSet **servers);
|
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);
|
DnssecMode manager_get_dnssec_mode(Manager *m);
|
||||||
bool manager_dnssec_supported(Manager *m);
|
bool manager_dnssec_supported(Manager *m);
|
||||||
|
@ -232,7 +232,7 @@ int manager_write_resolv_conf(Manager *m) {
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_warning_errno(r, "Failed to compile list of DNS servers: %m");
|
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)
|
if (r < 0)
|
||||||
return log_warning_errno(r, "Failed to compile list of search domains: %m");
|
return log_warning_errno(r, "Failed to compile list of search domains: %m");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user