diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-09-04 09:01:03 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-09-04 09:04:43 +0900 |
commit | 6a776e3a18ba654de484c9f5480712a4b13c38f1 (patch) | |
tree | 0742f63ca6d56d37eb108f76cf265dbbb9d50367 /src/libsystemd-network/sd-ipv4acd.c | |
parent | dce1cd41881fc8255ca33b4eba0b1bf541b7b6c4 (diff) | |
download | systemd-6a776e3a18ba654de484c9f5480712a4b13c38f1.tar.gz |
sd-ipv4acd: do not call callback in sd_ipv4acd_stop() when it is already stopped
Diffstat (limited to 'src/libsystemd-network/sd-ipv4acd.c')
-rw-r--r-- | src/libsystemd-network/sd-ipv4acd.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libsystemd-network/sd-ipv4acd.c b/src/libsystemd-network/sd-ipv4acd.c index d957202a68..0371641cdb 100644 --- a/src/libsystemd-network/sd-ipv4acd.c +++ b/src/libsystemd-network/sd-ipv4acd.c @@ -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); |