summary refs log tree commit diff
path: root/src/nm-initrd-generator/nmi-cmdline-reader.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2023-08-09 21:55:35 +0200
committerMichael Biebl <biebl@debian.org>2023-08-09 21:55:35 +0200
commit05e4a733f2141995181a551854d5df929f084adf (patch)
tree83bb937740a6667525ba0df046748ecaa829c269 /src/nm-initrd-generator/nmi-cmdline-reader.c
parent14b0f3a9dc9ea90d60a3b057350fd4d637dc021a (diff)
New upstream version 1.44.0 upstream/1.44.0
Diffstat (limited to 'src/nm-initrd-generator/nmi-cmdline-reader.c')
-rw-r--r--src/nm-initrd-generator/nmi-cmdline-reader.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c
index bafad041..68fe7004 100644
--- a/src/nm-initrd-generator/nmi-cmdline-reader.c
+++ b/src/nm-initrd-generator/nmi-cmdline-reader.c
@@ -1274,7 +1274,39 @@ reader_parse_ethtool(Reader *reader, char *argument)
 static void
 _normalize_conn(gpointer key, gpointer value, gpointer user_data)
 {
-    NMConnection *connection = value;
+    NMConnection      *connection = value;
+    NMSettingIPConfig *s_ip4 = NULL, *s_ip6 = NULL;
+
+    s_ip4 = nm_connection_get_setting_ip4_config(connection);
+    if (s_ip4) {
+        const char *method = nm_setting_ip_config_get_method(s_ip4);
+
+        if (!nm_streq(method, NM_SETTING_IP4_CONFIG_METHOD_AUTO)) {
+            g_object_set(s_ip4,
+                         NM_SETTING_IP_CONFIG_DHCP_HOSTNAME,
+                         NULL,
+                         NM_SETTING_IP_CONFIG_DHCP_TIMEOUT,
+                         NULL,
+                         NM_SETTING_IP4_CONFIG_DHCP_VENDOR_CLASS_IDENTIFIER,
+                         NULL,
+                         NULL);
+        }
+    }
+
+    s_ip6 = nm_connection_get_setting_ip6_config(connection);
+    if (s_ip6) {
+        const char *method = nm_setting_ip_config_get_method(s_ip6);
+
+        if (!nm_streq(method, NM_SETTING_IP6_CONFIG_METHOD_AUTO)
+            && !nm_streq(method, NM_SETTING_IP6_CONFIG_METHOD_DHCP)) {
+            g_object_set(s_ip6,
+                         NM_SETTING_IP_CONFIG_DHCP_HOSTNAME,
+                         NULL,
+                         NM_SETTING_IP_CONFIG_DHCP_TIMEOUT,
+                         NULL,
+                         NULL);
+        }
+    }
 
     nm_connection_normalize(connection, NULL, NULL, NULL);
 }