From: Yu Watanabe Date: Tue, 7 Jul 2020 02:06:08 +0000 (+0900) Subject: Revert "network: Don't send RA with zero router lifetime when restarting radv" X-Git-Tag: v246-rc1~25^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=290696e512475636824c6540610cbafe81addf9c;p=thirdparty%2Fsystemd.git Revert "network: Don't send RA with zero router lifetime when restarting radv" This reverts commit d469cea3bde53bc39317c8b433c825bb4790cbe5. --- diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c index ee7c0ee53fc..cc5c0223b5c 100644 --- a/src/libsystemd-network/sd-radv.c +++ b/src/libsystemd-network/sd-radv.c @@ -339,12 +339,12 @@ static int radv_timeout(sd_event_source *s, uint64_t usec, void *userdata) { return 0; fail: - sd_radv_stop(ra, true); + sd_radv_stop(ra); return 0; } -_public_ int sd_radv_stop(sd_radv *ra, bool zero_router_lifetime) { +_public_ int sd_radv_stop(sd_radv *ra) { int r; assert_return(ra, -EINVAL); @@ -354,15 +354,11 @@ _public_ int sd_radv_stop(sd_radv *ra, bool zero_router_lifetime) { log_radv("Stopping IPv6 Router Advertisement daemon"); - if (zero_router_lifetime) { - /* RFC 4861, Section 6.2.5, send at least one Router Advertisement - with zero lifetime */ - r = radv_send(ra, NULL, 0); - if (r < 0) - log_radv_errno(r, "Unable to send last Router Advertisement with router lifetime set to zero: %m"); - else - log_radv("Sent last Router Advertisement with router lifetime set to zero"); - } + /* RFC 4861, Section 6.2.5, send at least one Router Advertisement + with zero lifetime */ + r = radv_send(ra, NULL, 0); + if (r < 0) + log_radv_errno(r, "Unable to send last Router Advertisement with router lifetime set to zero: %m"); radv_reset(ra); ra->fd = safe_close(ra->fd); diff --git a/src/libsystemd-network/test-ndisc-ra.c b/src/libsystemd-network/test-ndisc-ra.c index 7c59418ca7d..d759ec03a8a 100644 --- a/src/libsystemd-network/test-ndisc-ra.c +++ b/src/libsystemd-network/test-ndisc-ra.c @@ -284,7 +284,7 @@ static int radv_recv(sd_event_source *s, int fd, uint32_t revents, void *userdat return 0; } - assert_se(sd_radv_stop(ra, true) >= 0); + assert_se(sd_radv_stop(ra) >= 0); test_stopped = true; return 0; diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index d9df46a23ee..ecf8a32691d 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -188,7 +188,7 @@ static int dhcp6_pd_prefix_assign(Link *link, struct in6_addr *prefix, if (r < 0) return r; - r = sd_radv_stop(radv, false); + r = sd_radv_stop(radv); if (r < 0) return r; diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index dcbf197ff46..053aa3b4cee 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -840,7 +840,7 @@ int link_stop_clients(Link *link, bool may_keep_dhcp) { } if (link->radv) { - k = sd_radv_stop(link->radv, true); + k = sd_radv_stop(link->radv); if (k < 0) r = log_link_warning_errno(link, k, "Could not stop IPv6 Router Advertisement: %m"); } diff --git a/src/systemd/sd-radv.h b/src/systemd/sd-radv.h index 763d5ddd87d..011e40d8a5c 100644 --- a/src/systemd/sd-radv.h +++ b/src/systemd/sd-radv.h @@ -22,7 +22,6 @@ #include #include #include -#include #include #include "_sd-common.h" @@ -50,7 +49,7 @@ int sd_radv_detach_event(sd_radv *nd); sd_event *sd_radv_get_event(sd_radv *ra); int sd_radv_start(sd_radv *ra); -int sd_radv_stop(sd_radv *ra, bool zero_router_lifetime); +int sd_radv_stop(sd_radv *ra); int sd_radv_set_ifindex(sd_radv *ra, int interface_index); int sd_radv_set_mac(sd_radv *ra, const struct ether_addr *mac_addr);