summaryrefslogtreecommitdiffstats
path: root/src/network/networkd-ipv4acd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/networkd-ipv4acd.c')
-rw-r--r--src/network/networkd-ipv4acd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/network/networkd-ipv4acd.c b/src/network/networkd-ipv4acd.c
index 3d5e203..de03293 100644
--- a/src/network/networkd-ipv4acd.c
+++ b/src/network/networkd-ipv4acd.c
@@ -92,7 +92,9 @@ static int static_ipv4acd_address_remove(Link *link, Address *address, bool on_c
else
log_link_debug(link, "Removing address %s, as the ACD client is stopped.", IN4_ADDR_TO_STRING(&address->in_addr.in));
- r = address_remove(address);
+ /* Do not call address_remove_and_cancel() here. Otherwise, the request is cancelled, and the
+ * interface may be in configured state without the address. */
+ r = address_remove(address, link);
if (r < 0)
return log_link_warning_errno(link, r, "Failed to remove address %s: %m", IN4_ADDR_TO_STRING(&address->in_addr.in));