[PATCH] Set the default IPv6 mode to auto and IPv4 optional

This patch changes the default IPv6 mode to Automatic, and default value
of the IPv4 may-fail setting to TRUE.

When combined, these changes allow NetworkManager to connect to IPv6-
only networks with no manual configuration changes necessary. It is
worth noting that they in no way change the behaviour for the vast
majority of users (who are in IPv4-only networks), as they will still
require IPv4 activation to succeed in order for the overall connection
to succeed.

I have tested the patch after applying it on top of 
NetworkManager-0.8.9997-6.git20110721.fc15.x86_64.rpm on a single-stack
network IPv4 network, a single-stack IPv6 network, a dual-stacked
network, and a network with neither IPv4 or IPv6 present.

The tests were done twice per network, once by debooting using an
automatically generated wired ethernet connection (no ifcfg file), and
once using a wireless connection that was created simply by selecting
the appropriate ESSID in the systray applet's dropdown list and
inputting the WPA passphrase.

In all of the cases, NM behaved as expected; it automatically performed
DHCPv4, DHCPv6, and SLAAC, depending on what was available at the time,
and the overall connection succeeded every time, except for when there
was neither IPv4 or IPv6 service (in that case, the overall connection
failed, also as expected).

diff --git a/libnm-util/nm-setting-ip4-config.c b/libnm-util/nm-setting-ip4-config.c
index 6b164ea..4101690 100644
--- a/libnm-util/nm-setting-ip4-config.c
+++ b/libnm-util/nm-setting-ip4-config.c
@@ -1256,7 +1256,7 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class)
 						   "this property to TRUE allows the overall network "
 						   "configuration to succeed if IPv4 configuration "
 						   "fails but IPv6 configuration completes successfully.",
-						   FALSE,
+						   TRUE,
diff --git a/src/nm-device.c b/src/nm-device.c
index 1301197..348f911 100644
--- a/src/nm-device.c
+++ b/src/nm-device.c
@@ -808,8 +808,8 @@ ip6_method_matches (NMConnection *connection, const char *match)
 		g_assert (method);
-	/* Treat missing IP6 setting as IGNORE */
-	if (!s_ip6 && !strcmp (match, NM_SETTING_IP6_CONFIG_METHOD_IGNORE))
+	/* Treat missing IP6 setting as AUTO */
+	if (!s_ip6 && !strcmp (match, NM_SETTING_IP6_CONFIG_METHOD_AUTO))
 		return TRUE;
 	return method && !strcmp (method, match);

Tore Anderson

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]