diff options
author | Dan Williams <dcbw@redhat.com> | 2013-10-07 11:40:16 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2013-10-07 11:53:18 -0500 |
commit | 9543e45afe0746ac1c9c10e4f78f43264fd288b4 (patch) | |
tree | a2e9aa586661aaa50cc0393f33e9957d7727db3d | |
parent | 2af8c08f6591b5b199bff1775d845c47ac131d58 (diff) | |
download | NetworkManager-9543e45afe0746ac1c9c10e4f78f43264fd288b4.tar.gz |
core: allow IPv4 to proceed if IPv6 is globally disabled but set to "auto" (rh #1012151)
If the user disabled IPv6 support in the kernel with "ipv6.disable=1" on the
kernel boot line, then any attempts to open IPv6 sockets (which libndp does)
will fail. This failed the entire connection, even if IPv6's "may-fail"
property was TRUE. Instead, just fail IPv6 and allow IPv4 to proceed. If
IPv4 fails or is disabled, then other logic will fail the entire connection.
-rw-r--r-- | src/devices/nm-device.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index d99b3d726a..6810afc577 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -3329,8 +3329,8 @@ act_stage3_ip6_config_start (NMDevice *self, if ( strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_AUTO) == 0 || strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL) == 0) { if (!addrconf6_start (self)) { - *reason = NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE; - ret = NM_ACT_STAGE_RETURN_FAILURE; + /* IPv6 might be disabled; allow IPv4 to proceed */ + ret = NM_ACT_STAGE_RETURN_STOP; } else ret = NM_ACT_STAGE_RETURN_POSTPONE; } else if (strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_DHCP) == 0) { |