summary refs log tree commit diff
path: root/src/core/devices/nm-device.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2023-10-04 11:44:49 +0200
committerMichael Biebl <biebl@debian.org>2023-10-04 11:44:49 +0200
commitd4d8b2b91f7ba000d97a8b2aab48c85000c11314 (patch)
tree4bae747b430c9dae89c22cbf298cbf6c862a52b8 /src/core/devices/nm-device.c
parent05e4a733f2141995181a551854d5df929f084adf (diff)
New upstream version 1.44.2 upstream/1.44.2
Diffstat (limited to 'src/core/devices/nm-device.c')
-rw-r--r--src/core/devices/nm-device.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
index 2038e2f2..d1212560 100644
--- a/src/core/devices/nm-device.c
+++ b/src/core/devices/nm-device.c
@@ -4247,6 +4247,20 @@ _dev_l3_cfg_notify_cb(NML3Cfg *l3cfg, const NML3ConfigNotifyData *notify_data, N
     case NM_L3_CONFIG_NOTIFY_TYPE_ACD_EVENT:
     {
         const NML3AcdAddrInfo *addr_info = &notify_data->acd_event.info;
+        char                   buf_addr[NM_INET_ADDRSTRLEN];
+
+        if (addr_info->state == NM_L3_ACD_ADDR_STATE_USED) {
+            _LOGI(LOGD_DEVICE,
+                  "IP address %s cannot be configured because it is already in use in the "
+                  "network by host %s",
+                  nm_inet4_ntop(addr_info->addr, buf_addr),
+                  nm_ether_addr_to_string_a(&addr_info->last_conflict_addr));
+        } else if (addr_info->state == NM_L3_ACD_ADDR_STATE_CONFLICT) {
+            _LOGI(LOGD_DEVICE,
+                  "conflict detected for IP address %s with host %s",
+                  nm_inet4_ntop(addr_info->addr, buf_addr),
+                  nm_ether_addr_to_string_a(&addr_info->last_conflict_addr));
+        }
 
         if (addr_info->state > NM_L3_ACD_ADDR_STATE_PROBING)
             _dev_ipmanual_check_ready(self);
@@ -8740,7 +8754,7 @@ _get_maybe_ipv6_disabled(NMDevice *self)
         return FALSE;
 
     path = nm_sprintf_bufa(128, "/proc/sys/net/ipv6/conf/%s/disable_ipv6", ifname);
-    return (nm_platform_sysctl_get_int32(platform, NMP_SYSCTL_PATHID_ABSOLUTE(path), 0) == 0);
+    return (nm_platform_sysctl_get_int32(platform, NMP_SYSCTL_PATHID_ABSOLUTE(path), 1) != 0);
 }
 
 /*