Jiří Klimeš d3cdc3c
commit 9543e45afe0746ac1c9c10e4f78f43264fd288b4
Jiří Klimeš d3cdc3c
Author: Dan Williams <dcbw@redhat.com>
Jiří Klimeš d3cdc3c
Date:   Mon Oct 7 11:40:16 2013 -0500
Jiří Klimeš d3cdc3c
Jiří Klimeš d3cdc3c
    core: allow IPv4 to proceed if IPv6 is globally disabled but set to "auto" (rh #1012151)
Jiří Klimeš d3cdc3c
    
Jiří Klimeš d3cdc3c
    If the user disabled IPv6 support in the kernel with "ipv6.disable=1" on the
Jiří Klimeš d3cdc3c
    kernel boot line, then any attempts to open IPv6 sockets (which libndp does)
Jiří Klimeš d3cdc3c
    will fail.  This failed the entire connection, even if IPv6's "may-fail"
Jiří Klimeš d3cdc3c
    property was TRUE.  Instead, just fail IPv6 and allow IPv4 to proceed.  If
Jiří Klimeš d3cdc3c
    IPv4 fails or is disabled, then other logic will fail the entire connection.
Jiří Klimeš d3cdc3c
Jiří Klimeš d3cdc3c
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
Jiří Klimeš d3cdc3c
index d99b3d7..6810afc 100644
Jiří Klimeš d3cdc3c
--- a/src/devices/nm-device.c
Jiří Klimeš d3cdc3c
+++ b/src/devices/nm-device.c
Jiří Klimeš d3cdc3c
@@ -3329,8 +3329,8 @@ act_stage3_ip6_config_start (NMDevice *self,
Jiří Klimeš d3cdc3c
 	if (   strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_AUTO) == 0
Jiří Klimeš d3cdc3c
 	    || strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL) == 0) {
Jiří Klimeš d3cdc3c
 		if (!addrconf6_start (self)) {
Jiří Klimeš d3cdc3c
-			*reason = NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE;
Jiří Klimeš d3cdc3c
-			ret = NM_ACT_STAGE_RETURN_FAILURE;
Jiří Klimeš d3cdc3c
+			/* IPv6 might be disabled; allow IPv4 to proceed */
Jiří Klimeš d3cdc3c
+			ret = NM_ACT_STAGE_RETURN_STOP;
Jiří Klimeš d3cdc3c
 		} else
Jiří Klimeš d3cdc3c
 			ret = NM_ACT_STAGE_RETURN_POSTPONE;
Jiří Klimeš d3cdc3c
 	} else if (strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_DHCP) == 0) {