From 707ddcfaacb0205b53dbdd9950d4e47288140948 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. (cherry picked from commit 1f730347196362f303cad17e8bcbc7559861d07e) --- 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 8d002d703e..e8c25bc6ef 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -10392,11 +10392,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;