summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-06-12 00:06:37 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-06-12 00:23:32 +0200
commite4f5b9b550075490e06ec78a6fcab50a10356078 (patch)
tree761370f9971ef1fb65e2b8287524aab126b4ce9b /plugins
parentf47673a2f1e72cda5ca0b14418fce0b18667c9ca (diff)
downloadconnman-e4f5b9b550075490e06ec78a6fcab50a10356078.tar.gz
connman-e4f5b9b550075490e06ec78a6fcab50a10356078.tar.bz2
connman-e4f5b9b550075490e06ec78a6fcab50a10356078.zip
Prevent wpa_supplicant from automatically associating to our hidden blocks
wpa_supplicant will never match a network block with an invalid BSSID and an actual scan results, and thus will not select the latter for association.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/supplicant.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index 156257ec..8fe3d638 100644
--- a/plugins/supplicant.c
+++ b/plugins/supplicant.c
@@ -368,6 +368,7 @@ static int set_hidden_network(struct supplicant_task *task, const char *netpath,
DBusMessageIter array, dict;
DBusError error;
dbus_uint32_t scan_ssid = 1;
+ const char *invalid_address = "ff:ff:ff:ff:ff:ff";
message = dbus_message_new_method_call(SUPPLICANT_NAME, netpath,
SUPPLICANT_INTF ".Network", "set");
@@ -386,6 +387,13 @@ static int set_hidden_network(struct supplicant_task *task, const char *netpath,
connman_dbus_dict_append_fixed_array(&dict, "ssid",
DBUS_TYPE_BYTE, &ssid, ssid_len);
+ /*
+ * We're setting an invalid BSSID to prevent wpa_s from associating
+ * automatically to this block once it's found.
+ */
+ connman_dbus_dict_append_basic(&dict, "bssid",
+ DBUS_TYPE_STRING, &invalid_address);
+
connman_dbus_dict_close(&array, &dict);
dbus_error_init(&error);