From 1f730347196362f303cad17e8bcbc7559861d07e Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Fri, 8 Sep 2023 11:45:58 +0200 Subject: [PATCH] device: check DAD result for manual method even without carrier IPv4 and IPv6 DAD work slightly differently: for IPv4 the presence or absence of carrier doesn't have any effect on the duration of the probe; for IPv6, DAD never completes without carrier because kernel never removes the tentative flag. In both cases, we shouldn't ignore the DAD result because that would mean that we complete the ipmanual method without addresses actually configured. --- src/core/devices/nm-device.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index 53dbc9ac42..2dc74eaacb 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -10398,11 +10398,8 @@ _dev_ipmanual_check_ready(NMDevice *self) } } - flags = NM_L3CFG_CHECK_READY_FLAGS_NONE; - if (has_carrier) { - flags |= NM_L3CFG_CHECK_READY_FLAGS_IP4_ACD_READY; - flags |= NM_L3CFG_CHECK_READY_FLAGS_IP6_DAD_READY; - } + flags = NM_L3CFG_CHECK_READY_FLAGS_IP4_ACD_READY; + flags |= NM_L3CFG_CHECK_READY_FLAGS_IP6_DAD_READY; for (IS_IPv4 = 0; IS_IPv4 < 2; IS_IPv4++) { const int addr_family = IS_IPv4 ? AF_INET : AF_INET6;