]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-ndisc: ignore failure in sending solicitation
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 11 Oct 2022 07:19:12 +0000 (16:19 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 11 Oct 2022 07:19:16 +0000 (16:19 +0900)
Even if a bonding master interface has carrier, the underlying slave
interfaces may not. In such a case, sending solicitation fails with
-ENOBUS. Here, let's unconditionally ignore errors, as anyway we will
send a solicitation later.

Fixes #24717.

src/libsystemd-network/sd-ndisc.c

index 276370ef054213fede5942ed00f0c7c14dcfd690..2cf0cebdeb741826054a34d63885039806ae7ac4 100644 (file)
@@ -286,13 +286,12 @@ static int ndisc_timeout(sd_event_source *s, uint64_t usec, void *userdata) {
                 goto fail;
 
         r = icmp6_send_router_solicitation(nd->fd, &nd->mac_addr);
-        if (r < 0) {
-                log_ndisc_errno(nd, r, "Error sending Router Solicitation: %m");
-                goto fail;
-        }
-
-        log_ndisc(nd, "Sent Router Solicitation, next solicitation in %s",
-                  FORMAT_TIMESPAN(nd->retransmit_time, USEC_PER_SEC));
+        if (r < 0)
+                log_ndisc_errno(nd, r, "Failed to send Router Solicitation, next solicitation in %s, ignoring: %m",
+                                FORMAT_TIMESPAN(nd->retransmit_time, USEC_PER_SEC));
+        else
+                log_ndisc(nd, "Sent Router Solicitation, next solicitation in %s",
+                          FORMAT_TIMESPAN(nd->retransmit_time, USEC_PER_SEC));
 
         return 0;