From: Yu Watanabe Date: Thu, 28 Feb 2019 01:10:38 +0000 (+0900) Subject: network: save GatewayOnLink= value as tristate in Route X-Git-Tag: v242-rc1~229^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=54901fd2223bfae6cb68402c71cec8ec6af59c39;p=thirdparty%2Fsystemd.git network: save GatewayOnLink= value as tristate in Route This should not change any behavior. But used in the later commit. --- diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index 537f0e48eb6..232abc843fc 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -59,6 +59,7 @@ int route_new(Route **ret) { .table = RT_TABLE_MAIN, .lifetime = USEC_INFINITY, .quickack = -1, + .gateway_onlink = -1, }; *ret = TAKE_PTR(route); @@ -565,6 +566,9 @@ int route_configure( if (r < 0) return log_error_errno(r, "Could not set scope: %m"); + if (route->gateway_onlink >= 0) + SET_FLAG(route->flags, RTNH_F_ONLINK, route->gateway_onlink); + r = sd_rtnl_message_route_set_flags(req, route->flags); if (r < 0) return log_error_errno(r, "Could not set flags: %m"); @@ -950,7 +954,8 @@ int config_parse_gateway_onlink( return 0; } - SET_FLAG(n->flags, RTNH_F_ONLINK, r); + n->gateway_onlink = r; + TAKE_PTR(n); return 0; } diff --git a/src/network/networkd-route.h b/src/network/networkd-route.h index 4eddf5194fa..7a9fc161bbc 100644 --- a/src/network/networkd-route.h +++ b/src/network/networkd-route.h @@ -30,6 +30,7 @@ struct Route { uint32_t initrwnd; unsigned char pref; unsigned flags; + int gateway_onlink; union in_addr_union gw; union in_addr_union dst;