about summary refs log tree commit diff
path: root/src/settings/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings/plugins')
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c12
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c56
2 files changed, 38 insertions, 30 deletions
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
index a1d3236e..e01f7344 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
@@ -399,7 +399,7 @@ make_connection_setting (const char *file,
 	if (v) {
 		GError *error = NULL;
 
-		if (nm_utils_is_valid_iface_name (v, &error)) {
+		if (nm_utils_ifname_valid_kernel (v, &error)) {
 			g_object_set (s_con,
 			              NM_SETTING_CONNECTION_INTERFACE_NAME, v,
 			              NULL);
@@ -1692,7 +1692,7 @@ make_ip4_setting (shvarFile *ifcfg,
 
 	g_object_set (s_ip4,
 	              NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, svGetValueBoolean (ifcfg, "DHCP_SEND_HOSTNAME", TRUE),
-	              NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, svGetValueInt64 (ifcfg, "IPV4_DHCP_TIMEOUT", 10, 0, G_MAXINT32, 0),
+	              NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, (int) svGetValueInt64 (ifcfg, "IPV4_DHCP_TIMEOUT", 10, 0, G_MAXINT32, 0),
 	              NULL);
 
 	nm_clear_g_free (&value);
@@ -2159,9 +2159,11 @@ make_ip6_setting (shvarFile *ifcfg,
 	if (v)
 		g_object_set (s_ip6, NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, v, NULL);
 
-	g_object_set (s_ip6, NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME,
-	              svGetValueBoolean (ifcfg, "DHCPV6_SEND_HOSTNAME", TRUE), NULL);
-
+	g_object_set (s_ip6,
+	              NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, svGetValueBoolean (ifcfg, "DHCPV6_SEND_HOSTNAME", TRUE),
+	              NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, (int) svGetValueInt64 (ifcfg, "IPV6_DHCP_TIMEOUT", 10, 0, G_MAXINT32, 0),
+	              NM_SETTING_IP6_CONFIG_RA_TIMEOUT, (int) svGetValueInt64 (ifcfg, "IPV6_RA_TIMEOUT", 10, 0, G_MAXINT32, 0),
+	              NULL);
 
 	i64 = svGetValueInt64 (ifcfg, "DHCPV6_HOSTNAME_FLAGS", 10, 0, G_MAXUINT32, -1);
 	if (i64 > -1) {
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
index d33845c2..f328cc8f 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
@@ -2748,30 +2748,6 @@ write_ip4_aliases (NMConnection *connection, const char *base_ifcfg_path)
 	}
 }
 
-static void
-write_ip6_setting_dhcp_hostname (NMSettingIPConfig *s_ip6, shvarFile *ifcfg)
-{
-	NMDhcpHostnameFlags flags;
-	const char *hostname;
-
-	hostname = nm_setting_ip_config_get_dhcp_hostname (s_ip6);
-	svSetValueStr (ifcfg, "DHCPV6_HOSTNAME", hostname);
-
-	/* Missing DHCPV6_SEND_HOSTNAME means TRUE, and we prefer not write it
-	 * explicitly in that case, because it is NM-specific variable
-	 */
-	if (nm_setting_ip_config_get_dhcp_send_hostname (s_ip6))
-		svUnsetValue (ifcfg, "DHCPV6_SEND_HOSTNAME");
-	else
-		svSetValueStr (ifcfg, "DHCPV6_SEND_HOSTNAME", "no");
-
-	flags = nm_setting_ip_config_get_dhcp_hostname_flags (s_ip6);
-	svSetValueInt64_cond (ifcfg,
-	                      "DHCPV6_HOSTNAME_FLAGS",
-	                      flags != NM_DHCP_HOSTNAME_FLAG_NONE,
-	                      flags);
-}
-
 static gboolean
 write_ip6_setting (NMConnection *connection,
                    shvarFile *ifcfg,
@@ -2789,6 +2765,9 @@ write_ip6_setting (NMConnection *connection,
 	NMIPRouteTableSyncMode route_table;
 	GString *ip_str1, *ip_str2, *ip_ptr;
 	NMSettingIP6ConfigAddrGenMode addr_gen_mode;
+	NMDhcpHostnameFlags flags;
+	const char *hostname;
+	int timeout;
 
 	NM_SET_OUT (out_route6_content, NULL);
 
@@ -2855,7 +2834,34 @@ write_ip6_setting (NMConnection *connection,
 	svSetValueStr (ifcfg, "DHCPV6_IAID",
 	               nm_setting_ip_config_get_dhcp_iaid (s_ip6));
 
-	write_ip6_setting_dhcp_hostname (s_ip6, ifcfg);
+	hostname = nm_setting_ip_config_get_dhcp_hostname (s_ip6);
+	svSetValueStr (ifcfg, "DHCPV6_HOSTNAME", hostname);
+
+	/* Missing DHCPV6_SEND_HOSTNAME means TRUE, and we prefer not write it
+	 * explicitly in that case, because it is NM-specific variable
+	 */
+	if (nm_setting_ip_config_get_dhcp_send_hostname (s_ip6))
+		svUnsetValue (ifcfg, "DHCPV6_SEND_HOSTNAME");
+	else
+		svSetValueStr (ifcfg, "DHCPV6_SEND_HOSTNAME", "no");
+
+	timeout = nm_setting_ip6_config_get_ra_timeout (NM_SETTING_IP6_CONFIG (s_ip6));
+	svSetValueInt64_cond (ifcfg,
+	                      "IPV6_RA_TIMEOUT",
+	                      timeout != 0,
+	                      timeout);
+
+	timeout = nm_setting_ip_config_get_dhcp_timeout (s_ip6);
+	svSetValueInt64_cond (ifcfg,
+	                      "IPV6_DHCP_TIMEOUT",
+	                      timeout != 0,
+	                      timeout);
+
+	flags = nm_setting_ip_config_get_dhcp_hostname_flags (s_ip6);
+	svSetValueInt64_cond (ifcfg,
+	                      "DHCPV6_HOSTNAME_FLAGS",
+	                      flags != NM_DHCP_HOSTNAME_FLAG_NONE,
+	                      flags);
 
 	/* Write out IP addresses */
 	num = nm_setting_ip_config_get_num_addresses (s_ip6);