]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: add DHCPv4.RoutesToDNS= setting
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 16 Jul 2019 17:47:20 +0000 (02:47 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 18 Jul 2019 16:49:39 +0000 (01:49 +0900)
man/systemd.network.xml
src/network/networkd-dhcp4.c
src/network/networkd-network-gperf.gperf
src/network/networkd-network.h
test/fuzz/fuzz-network-parser/directives.network

index cd1aa73f4699b47e995af05c797a93cc5f7ee149..041bafc773ddaa0175d6113984e0370dc6612909 100644 (file)
             project='man-pages'><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term><varname>RoutesToDNS=</varname></term>
+          <listitem>
+            <para>When true, the routes to the DNS servers received from the DHCP server will be
+            configured. When <varname>UseDNS=</varname> is disabled, this setting is ignored.
+            Defaults to <literal>false</literal></para>
+          </listitem>
+        </varlistentry>
         <varlistentry>
           <term><varname>UseNTP=</varname></term>
           <listitem>
index e5ea6b702ec1b8ee2cb83fdc9fb5fadf5c0db190..f20254fc827d58b90b780116c0fab4468529efea 100644 (file)
@@ -118,7 +118,8 @@ static int link_set_dns_routes(Link *link, const struct in_addr *address) {
         assert(link->dhcp_lease);
         assert(link->network);
 
-        if (!link->network->dhcp_use_dns)
+        if (!link->network->dhcp_use_dns ||
+            !link->network->dhcp_routes_to_dns)
                 return 0;
 
         n = sd_dhcp_lease_get_dns(link->dhcp_lease, &dns);
@@ -408,7 +409,8 @@ static int dhcp_remove_dns_routes(Link *link, sd_dhcp_lease *lease, const struct
         assert(lease);
         assert(link->network);
 
-        if (!link->network->dhcp_use_dns)
+        if (!link->network->dhcp_use_dns ||
+            !link->network->dhcp_routes_to_dns)
                 return 0;
 
         n = sd_dhcp_lease_get_dns(lease, &dns);
index 3501ffdd104636f8c05fb4a201dc0f5b50c3844e..f5f837ad63bb30228c060f603349770648dbdda2 100644 (file)
@@ -142,6 +142,7 @@ Route.FastOpenNoCookie,                 config_parse_fast_open_no_cookie,
 Route.TTLPropagate,                     config_parse_route_ttl_propagate,                0,                             0
 DHCPv4.ClientIdentifier,                config_parse_dhcp_client_identifier,             0,                             offsetof(Network, dhcp_client_identifier)
 DHCPv4.UseDNS,                          config_parse_bool,                               0,                             offsetof(Network, dhcp_use_dns)
+DHCPv4.RoutesToDNS,                     config_parse_bool,                               0,                             offsetof(Network, dhcp_routes_to_dns)
 DHCPv4.UseNTP,                          config_parse_bool,                               0,                             offsetof(Network, dhcp_use_ntp)
 DHCPv4.UseMTU,                          config_parse_bool,                               0,                             offsetof(Network, dhcp_use_mtu)
 DHCPv4.UseHostname,                     config_parse_bool,                               0,                             offsetof(Network, dhcp_use_hostname)
index 82fad492a8f30b24db055888f964febbfbabc833..0fa800841cdbb4622e1f9497710443176b911cc1 100644 (file)
@@ -91,6 +91,7 @@ struct Network {
         bool dhcp_broadcast;
         int dhcp_critical;
         bool dhcp_use_dns;
+        bool dhcp_routes_to_dns;
         bool dhcp_use_ntp;
         bool dhcp_use_mtu;
         bool dhcp_use_routes;
index 69a4281542773551558416bcb61db0ba89b6a921..c3af95db0dbf6f03035b5341d2dbadcbd7295918 100644 (file)
@@ -69,6 +69,7 @@ SendRelease=
 MaxAttempts=
 [DHCPv4]
 UseDNS=
+RoutesToDNS=
 UseDomains=
 UseRoutes=
 IAID=