From 73e566bf16341c2064598ccf2a060366113eeccc Mon Sep 17 00:00:00 2001 From: Ronan Pigott Date: Wed, 21 Aug 2024 09:41:35 -0700 Subject: [PATCH] resolved: introduce link_set_default_route --- src/resolve/resolved-link.c | 14 ++++++++++++++ src/resolve/resolved-link.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index bb43a73de42..01fa5878a68 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -766,6 +766,20 @@ void link_next_dns_server(Link *l, DnsServer *if_current) { link_set_dns_server(l, l->dns_servers); } +void link_set_default_route(Link *l, bool b) { + assert(l); + + if (l->default_route == b) + return; + + l->default_route = b; + + /* If we are currently using the fallback servers, changing a link to be default-route means + * we should reconsider whether or not the fallback servers are necessary. */ + if (b && dns_server_is_fallback(l->manager->current_dns_server)) + manager_set_dns_server(l->manager, NULL); +} + DnsOverTlsMode link_get_dns_over_tls_mode(Link *l) { assert(l); diff --git a/src/resolve/resolved-link.h b/src/resolve/resolved-link.h index 0695a6ff838..482a4b4148c 100644 --- a/src/resolve/resolved-link.h +++ b/src/resolve/resolved-link.h @@ -99,6 +99,7 @@ void link_allocate_scopes(Link *l); DnsServer* link_set_dns_server(Link *l, DnsServer *s); DnsServer* link_get_dns_server(Link *l); void link_next_dns_server(Link *l, DnsServer *if_current); +void link_set_default_route(Link *l, bool b); DnssecMode link_get_dnssec_mode(Link *l); bool link_dnssec_supported(Link *l); -- 2.47.3