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.
This commit is contained in:
Beniamino Galvani 2023-09-08 11:45:58 +02:00
parent a49913504d
commit 1f73034719

View file

@ -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;