From 091f5fa9229897a52424cd442b325f97d361dbc3 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Fri, 15 Jun 2012 14:13:49 +0300 Subject: [PATCH] supplicant: Call scan callback if needed when removing interface Check whether a scan callback is set for the interface when an interface removed signal is received from wpa_supplicant. wpa_supplicant seems not to reply to any outstanding scan method calls after a wpa_supplicant 'RemoveInterface' has been received. --- gsupplicant/supplicant.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index decf5fa..1a10291 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -437,6 +437,21 @@ static void remove_interface(gpointer data) g_hash_table_destroy(interface->net_mapping); g_hash_table_destroy(interface->network_table); + if (interface->scan_callback != NULL) { + SUPPLICANT_DBG("call interface %p callback %p scanning %d", + interface, interface->scan_callback, + interface->scanning); + + interface->scan_callback(-EIO, interface, interface->scan_data); + interface->scan_callback = NULL; + interface->scan_data = NULL; + + if (interface->scanning == TRUE) { + interface->scanning = FALSE; + callback_scan_finished(interface); + } + } + callback_interface_removed(interface); g_free(interface->wps_cred.key); -- 2.7.4