From: Yu Watanabe Date: Wed, 27 Feb 2019 09:41:49 +0000 (+0900) Subject: network: enable GatewayOnLink= if Gateway= without static address configured X-Git-Tag: v242-rc1~229^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4912ab7774ccc1eed07bfbbc6b87e8a23b1f5495;p=thirdparty%2Fsystemd.git network: enable GatewayOnLink= if Gateway= without static address configured And warn about that. But this only done if GatewayOnLink= is not specified. When it is explicitly disabled, then the flag will not be set. --- diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 0eda5b1373a..ab4e90543c3 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -293,7 +293,7 @@ static int network_verify(Network *network) { address_free(address); } - LIST_FOREACH_SAFE(routes, route, route_next, network->static_routes) + LIST_FOREACH_SAFE(routes, route, route_next, network->static_routes) { if (route->family == AF_UNSPEC) { log_warning("%s: Route section without Gateway=, Destination=, Source=, " "or PreferredSource= field configured. " @@ -301,8 +301,19 @@ static int network_verify(Network *network) { network->filename, route->section->line); route_free(route); + continue; } + if (network->n_static_addresses == 0 && + in_addr_is_null(route->family, &route->gw) == 0 && + route->gateway_onlink < 0) { + log_warning("%s: Gateway= without static address configured. " + "Enabling GatewayOnLink= option.", + network->filename); + route->gateway_onlink = true; + } + } + return 0; }