summaryrefslogtreecommitdiff
path: root/src/nm-manager.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-03-05 10:16:39 -0600
committerDan Williams <dcbw@redhat.com>2014-03-12 08:42:55 -0500
commit23a5ae2f4490c5e64787af4fcab7a4bc63cfc852 (patch)
tree7dcecc367eae951bdd0d495f363a193ae7494415 /src/nm-manager.c
parent787455bae149a1f9fd7152aab290be6c7a4d39f3 (diff)
downloadNetworkManager-23a5ae2f4490c5e64787af4fcab7a4bc63cfc852.tar.gz
wifi: bypass available check for hidden APs during activation (rh #1069844)dcbw/hidden-ssid
Because not all clients set the 'hidden' property in a connection for hidden/non-SSID-broadcasting networks, they may not show up in the device's available-connections property. After the PendingActivation object removal, all activations require the connection to be in available-connections, and thus hidden SSID networks could not be activated. Unfortunately check_connection_available() is used both during activation and to populate the available-connections array, but we only want to special-case activation paths, and still ensure that SSIDs not found in the scan list are not in available-connections. To make it clear this is a WiFi only hack, and that we should remove it at some point in the future, create another class method specifically for hidden WiFi and use that in activation paths to special-case hidden WiFi connection activation.
Diffstat (limited to 'src/nm-manager.c')
-rw-r--r--src/nm-manager.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 26e65d84fe..1466a429f0 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -2501,7 +2501,7 @@ ensure_master_active_connection (NMManager *self,
if (!is_compatible_with_slave (candidate, connection))
continue;
- if (nm_device_connection_is_available (master_device, candidate)) {
+ if (nm_device_connection_is_available (master_device, candidate, TRUE)) {
master_ac = nm_manager_activate_connection (self,
candidate,
NULL,
@@ -2542,7 +2542,7 @@ ensure_master_active_connection (NMManager *self,
continue;
}
- if (!nm_device_connection_is_available (candidate, master_connection))
+ if (!nm_device_connection_is_available (candidate, master_connection, TRUE))
continue;
found_device = TRUE;
@@ -2658,7 +2658,7 @@ _internal_activate_device (NMManager *self, NMActiveConnection *active, GError *
}
/* Final connection must be available on device */
- if (!nm_device_connection_is_available (device, connection)) {
+ if (!nm_device_connection_is_available (device, connection, TRUE)) {
g_set_error (error, NM_MANAGER_ERROR, NM_MANAGER_ERROR_UNKNOWN_CONNECTION,
"Connection '%s' is not available on the device %s at this time.",
nm_connection_get_id (connection), nm_device_get_iface (device));