From 6f8a8b84f28be7a6133bbde1479dee9abad6cee8 Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Wed, 13 Jun 2018 19:22:34 +0530 Subject: [PATCH] networkd: Don't try to close fd in sd_radv_stop if fd is closed. sd_radv_stop is called from two places. if sd_radv_stop is alrady success then just don't try to close it . ``` systemd-networkd[604]: RADV: Stopping IPv6 Router Advertisement daemon systemd-networkd[604]: RADV: Unable to send last Router Advertisement with router lifetime set to zero: Bad file descriptor <==================HERE systemd-networkd[604]: RADV: Updated prefix 2a0a:*:*:fc::/64 preferred 1h valid 2h systemd-networkd[604]: RADV: Started IPv6 Router Advertisement daemon ``` Closes one of the issue #8960 --- src/libsystemd-network/sd-radv.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c index f349384..cf7fe09 100644 --- a/src/libsystemd-network/sd-radv.c +++ b/src/libsystemd-network/sd-radv.c @@ -352,6 +352,9 @@ _public_ int sd_radv_stop(sd_radv *ra) { assert_return(ra, -EINVAL); + if (ra->state == SD_RADV_STATE_IDLE) + return 0; + log_radv("Stopping IPv6 Router Advertisement daemon"); /* RFC 4861, Section 6.2.5, send at least one Router Advertisement -- 2.7.4