]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: use the fallback servers when no default dns is configured
authorRonan Pigott <ronan@rjp.ie>
Tue, 20 Aug 2024 17:25:28 +0000 (10:25 -0700)
committerRonan Pigott <ronan@rjp.ie>
Wed, 21 Aug 2024 16:51:42 +0000 (09:51 -0700)
This expands the role of fallback servers so they are applied not only
when there are no dns servers configured, but when all the configured
dns servers are configured only for non-default-route links.

src/resolve/resolved-dns-server.c
src/resolve/resolved-link-bus.c
src/resolve/resolved-link.c

index cfdcc6d9bc70428498576a26b9567cda440ce2ad..b48d8e141784e77ed9af9ab4cae372ee0496adc9 100644 (file)
@@ -907,7 +907,7 @@ DnsServer *manager_get_dns_server(Manager *m) {
                  * servers */
 
                 HASHMAP_FOREACH(l, m->links)
-                        if (l->dns_servers) {
+                        if (l->dns_servers && l->default_route) {
                                 found = true;
                                 break;
                         }
index f5a3b0e36be71f8042795ae8b75840163cad6b05..5e9e5bf17a762cc1a6cb6f6efff65997f64c03be 100644 (file)
@@ -463,8 +463,7 @@ int bus_link_method_set_default_route(sd_bus_message *message, void *userdata, s
         bus_client_log(message, "dns default route change");
 
         if (l->default_route != b) {
-                l->default_route = b;
-
+                link_set_default_route(l, b);
                 (void) link_save_user(l);
                 (void) manager_write_resolv_conf(l->manager);
 
index 01fa5878a68cf223b376386e5c0faff556f62613..928137b967a70b26c2ea82da662fd88366946dad 100644 (file)
@@ -319,7 +319,7 @@ static int link_update_default_route(Link *l) {
         if (r < 0)
                 goto clear;
 
-        l->default_route = r > 0;
+        link_set_default_route(l, r > 0);
         return 0;
 
 clear: