From: Ronan Pigott Date: Wed, 21 Aug 2024 16:41:35 +0000 (-0700) Subject: resolved: introduce link_set_default_route X-Git-Tag: v257-rc1~651^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73e566bf16341c2064598ccf2a060366113eeccc;p=thirdparty%2Fsystemd.git resolved: introduce link_set_default_route --- 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);