1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-09-01 14:17:37 +03:00

network: convert router lifetime from usec_t to uint16_t

This commit is contained in:
Yu Watanabe
2020-11-09 16:49:33 +09:00
parent dd1b187075
commit 2075e596cf

View File

@ -641,6 +641,7 @@ static bool link_radv_enabled(Link *link) {
} }
int radv_configure(Link *link) { int radv_configure(Link *link) {
uint16_t router_lifetime;
RoutePrefix *q; RoutePrefix *q;
Prefix *p; Prefix *p;
int r; int r;
@ -675,16 +676,20 @@ int radv_configure(Link *link) {
if (r < 0) if (r < 0)
return r; return r;
/* a value of 0xffffffff represents infinity, 0x0 means this host is /* a value of UINT16_MAX represents infinity, 0x0 means this host is not a router */
not a router */ if (link->network->router_lifetime_usec == USEC_INFINITY)
r = sd_radv_set_router_lifetime(link->radv, router_lifetime = UINT16_MAX;
DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC)); else if (link->network->router_lifetime_usec > (UINT16_MAX - 1) * USEC_PER_SEC)
router_lifetime = UINT16_MAX - 1;
else
router_lifetime = DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC);
r = sd_radv_set_router_lifetime(link->radv, router_lifetime);
if (r < 0) if (r < 0)
return r; return r;
if (link->network->router_lifetime_usec > 0) { if (router_lifetime > 0) {
r = sd_radv_set_preference(link->radv, r = sd_radv_set_preference(link->radv, link->network->router_preference);
link->network->router_preference);
if (r < 0) if (r < 0)
return r; return r;
} }