]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-ipv4acd: do not call callback in sd_ipv4acd_stop() when it is already stopped
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 4 Sep 2020 00:01:03 +0000 (09:01 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 4 Sep 2020 00:04:43 +0000 (09:04 +0900)
src/libsystemd-network/sd-ipv4acd.c

index d957202a689db62372258587b224454df994fa7c..0371641cdbf3fa3fcd32d1e2da73372956580c8a 100644 (file)
@@ -142,10 +142,17 @@ static void ipv4acd_client_notify(sd_ipv4acd *acd, int event) {
 }
 
 int sd_ipv4acd_stop(sd_ipv4acd *acd) {
+        IPv4ACDState old_state;
+
         assert_return(acd, -EINVAL);
 
+        old_state = acd->state;
+
         ipv4acd_reset(acd);
 
+        if (old_state == IPV4ACD_STATE_INIT)
+                return 0;
+
         log_ipv4acd(acd, "STOPPED");
 
         ipv4acd_client_notify(acd, SD_IPV4ACD_EVENT_STOP);