[PATCH] wifi: allow autoconnect on AP/AdHoc mode connections with manual IP configuration
- From: Dan Williams <dcbw redhat com>
- To: networkmanager-list gnome org
- Subject: [PATCH] wifi: allow autoconnect on AP/AdHoc mode connections with manual IP configuration
- Date: Mon, 08 Feb 2016 17:03:45 -0600
The existing checks assumed that all AP/AdHoc connections would use the
shared IP method. But what we really want to check for here is whether the
connection is AP/AdHoc. Leave the existing 'shared' check for backwards
compatibility.
Also move the check above the timestamp check, since the user shouldn't need
to manually set a timestamp just to get an AP-mode connection to autoconnect.
---
src/devices/wifi/nm-device-wifi.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
index 8ea3b68..4198a8a 100644
--- a/src/devices/wifi/nm-device-wifi.c
+++ b/src/devices/wifi/nm-device-wifi.c
@@ -1140,13 +1140,25 @@ can_auto_connect (NMDevice *device,
{
NMDeviceWifi *self = NM_DEVICE_WIFI (device);
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
+ NMSettingWireless *s_wifi;
GSList *ap_iter;
- const char *method = NULL;
+ const char *method, *mode;
guint64 timestamp = 0;
if (!NM_DEVICE_CLASS (nm_device_wifi_parent_class)->can_auto_connect (device, connection,
specific_object))
return FALSE;
+ s_wifi = nm_connection_get_setting_wireless (connection);
+ g_return_val_if_fail (s_wifi, FALSE);
+
+ /* Always allow autoconnect for shared/Ad-Hoc/AP */
+ method = nm_utils_get_ip_config_method (connection, NM_TYPE_SETTING_IP4_CONFIG);
+ mode = nm_setting_wireless_get_mode (s_wifi);
+ if ( g_strcmp0 (mode, NM_SETTING_WIRELESS_MODE_ADHOC) == 0
+ || g_strcmp0 (mode, NM_SETTING_WIRELESS_MODE_AP) == 0
+ || g_strcmp0 (method, NM_SETTING_IP4_CONFIG_METHOD_SHARED) == 0)
+ return TRUE;
+
/* Don't autoconnect to networks that have been tried at least once
* but haven't been successful, since these are often accidental choices
* from the menu and the user may not know the password.
@@ -1156,11 +1168,6 @@ can_auto_connect (NMDevice *device,
return FALSE;
}
- /* Use the connection if it's a shared connection */
- method = nm_utils_get_ip_config_method (connection, NM_TYPE_SETTING_IP4_CONFIG);
- if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_SHARED))
- return TRUE;
-
for (ap_iter = priv->ap_list; ap_iter; ap_iter = g_slist_next (ap_iter)) {
NMAccessPoint *ap = NM_AP (ap_iter->data);
--
2.4.3
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]