ConnMan's own autoscan mechanism has proven to work properly than wpa_supplicant's one which does not support hidden SSIDs. Thus removing its support entirely. --- gsupplicant/gsupplicant.h | 5 ---- gsupplicant/supplicant.c | 66 ----------------------------------------------- plugins/wifi.c | 21 +-------------- 3 files changed, 1 insertion(+), 91 deletions(-)
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 97c804a..187dc65 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -225,11 +225,6 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface, GSupplicantInterfaceCallback callback, void *user_data); -int g_supplicant_interface_autoscan(GSupplicantInterface *interface, - const char *autoscan_data, - GSupplicantInterfaceCallback callback, - void *user_data); - int g_supplicant_interface_p2p_find(GSupplicantInterface *interface, GSupplicantInterfaceCallback callback, void *user_data); diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 3bdf0dc..dd9a525 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -3443,14 +3443,6 @@ struct interface_scan_data { void *user_data; }; -struct interface_autoscan_data { - GSupplicantInterface *interface; - char *path; - GSupplicantInterfaceCallback callback; - const char *autoscan_params; - void *user_data; -}; - static void interface_create_data_free(struct interface_create_data *data) { g_free(data->ifname); @@ -3967,64 +3959,6 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface, return ret; } -static void interface_autoscan_result(const char *error, - DBusMessageIter *iter, void *user_data) -{ - struct interface_autoscan_data *data = user_data; - int err = 0; - - if (error) { - SUPPLICANT_DBG("error %s", error); - err = -EIO; - } - - g_free(data->path); - - if (data->callback) - data->callback(err, data->interface, data->user_data); - - dbus_free(data); -} - -static void interface_autoscan_params(DBusMessageIter *iter, void *user_data) -{ - struct interface_autoscan_data *data = user_data; - - dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, - &data->autoscan_params); -} - -int g_supplicant_interface_autoscan(GSupplicantInterface *interface, - const char *autoscan_data, - GSupplicantInterfaceCallback callback, - void *user_data) -{ - struct interface_autoscan_data *data; - int ret; - - data = dbus_malloc0(sizeof(*data)); - if (!data) - return -ENOMEM; - - data->interface = interface; - data->path = g_strdup(interface->path); - data->callback = callback; - data->autoscan_params = autoscan_data; - data->user_data = user_data; - - ret = supplicant_dbus_method_call(interface->path, - SUPPLICANT_INTERFACE ".Interface", "AutoScan", - interface_autoscan_params, - interface_autoscan_result, data, - interface); - if (ret < 0) { - g_free(data->path); - dbus_free(data); - } - - return ret; -} - static int parse_supplicant_error(DBusMessageIter *iter) { int err = -ECANCELED; diff --git a/plugins/wifi.c b/plugins/wifi.c index e081f8a..1f90a31 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -1399,22 +1399,8 @@ static void setup_autoscan(struct wifi_data *wifi) start_autoscan(wifi->device); } -static void interface_autoscan_callback(int result, - GSupplicantInterface *interface, - void *user_data) -{ - struct wifi_data *wifi = user_data; - - if (result < 0) { - DBG("Could not enable Autoscan, falling back..."); - setup_autoscan(wifi); - } -} - static void finalize_interface_creation(struct wifi_data *wifi) { - GSupplicantInterface *interface = wifi->interface; - DBG("interface is ready wifi %p tethering %d", wifi, wifi->tethering); if (!wifi->device) { @@ -1430,12 +1416,7 @@ static void finalize_interface_creation(struct wifi_data *wifi) if (wifi->p2p_device) return; - /* Setting up automatic scanning */ - if (g_supplicant_interface_autoscan(interface, AUTOSCAN_DEFAULT, - interface_autoscan_callback, wifi) < 0) { - DBG("Could not enable Autoscan, falling back..."); - setup_autoscan(wifi); - } + setup_autoscan(wifi); } static void interface_create_callback(int result, -- 2.0.5 _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman