From 54901fd2223bfae6cb68402c71cec8ec6af59c39 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 28 Feb 2019 10:10:38 +0900 Subject: [PATCH] network: save GatewayOnLink= value as tristate in Route This should not change any behavior. But used in the later commit. --- src/network/networkd-route.c | 7 ++++++- src/network/networkd-route.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index 537f0e48eb..232abc843f 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 4eddf5194f..7a9fc161bb 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;