network: change UseGateway= default to UseRoutes= setting

Anyone previously using the UseRoutes=false parameter expected their
dhcp4-provided gateway route to be ignored, as well.  However, with
the introduction of the UseGateway= parameter, this is no longer true.

In order to keep backwards compatibility, this sets the UseGateway=
default value to whatever UseRoutes= has been set to.
This commit is contained in:
Dan Streetman 2020-04-15 14:40:21 -04:00
parent f74067dfbd
commit 589397a277
4 changed files with 9 additions and 5 deletions

View file

@ -1491,8 +1491,9 @@
<varlistentry> <varlistentry>
<term><varname>UseGateway=</varname></term> <term><varname>UseGateway=</varname></term>
<listitem> <listitem>
<para>When true (the default), the gateway will be requested from the DHCP server and added to the <para>When true, the gateway will be requested from the DHCP server and added to the routing table with a
routing table with a metric of 1024, and a scope of "link".</para> metric of 1024, and a scope of "link". When unset, the value specified with <option>UseRoutes=</option>
is used.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View file

@ -164,7 +164,7 @@ DHCPv4.UseMTU, config_parse_bool,
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname) DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname)
DHCPv4.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) DHCPv4.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
DHCPv4.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes) DHCPv4.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes)
DHCPv4.UseGateway, config_parse_bool, 0, offsetof(Network, dhcp_use_gateway) DHCPv4.UseGateway, config_parse_tristate, 0, offsetof(Network, dhcp_use_gateway)
DHCPv4.RequestOptions, config_parse_dhcp_request_options, 0, 0 DHCPv4.RequestOptions, config_parse_dhcp_request_options, 0, 0
DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize) DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
DHCPv4.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname) DHCPv4.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname)

View file

@ -267,6 +267,9 @@ int network_verify(Network *network) {
network->dhcp_use_mtu = false; network->dhcp_use_mtu = false;
} }
if (network->dhcp_use_gateway < 0)
network->dhcp_use_gateway = network->dhcp_use_routes;
if (network->dhcp_critical >= 0) { if (network->dhcp_critical >= 0) {
if (network->keep_configuration >= 0) if (network->keep_configuration >= 0)
log_warning("%s: Both KeepConfiguration= and deprecated CriticalConnection= are set. " log_warning("%s: Both KeepConfiguration= and deprecated CriticalConnection= are set. "
@ -385,7 +388,7 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
.dhcp_use_dns = true, .dhcp_use_dns = true,
.dhcp_use_hostname = true, .dhcp_use_hostname = true,
.dhcp_use_routes = true, .dhcp_use_routes = true,
.dhcp_use_gateway = true, .dhcp_use_gateway = -1,
/* NOTE: this var might be overwritten by network_apply_anonymize_if_set */ /* NOTE: this var might be overwritten by network_apply_anonymize_if_set */
.dhcp_send_hostname = true, .dhcp_send_hostname = true,
.dhcp_send_release = true, .dhcp_send_release = true,

View file

@ -110,7 +110,7 @@ struct Network {
bool dhcp_use_sip; bool dhcp_use_sip;
bool dhcp_use_mtu; bool dhcp_use_mtu;
bool dhcp_use_routes; bool dhcp_use_routes;
bool dhcp_use_gateway; int dhcp_use_gateway;
bool dhcp_use_timezone; bool dhcp_use_timezone;
bool rapid_commit; bool rapid_commit;
bool dhcp_use_hostname; bool dhcp_use_hostname;