From 860fddbb413b131b24ca5ae90ffcfdbae6f715b0 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Fri, 17 Dec 2010 15:31:05 +0200 Subject: [PATCH] Allow setting scan_res_handler from the callback function Some new code I'm working on will need the scan_res_handler assigned all the time in certain circumstances, so the easiest way is to reset it within the handler. This is currently prevented by the way the code in the event handler works -- change that to permit such usage. Signed-off-by: Johannes Berg --- wpa_supplicant/events.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 988c31ac8..a38d8e9e1 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -873,8 +873,13 @@ static void _wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s, #endif /* CONFIG_NO_RANDOM_POOL */ if (wpa_s->scan_res_handler) { - wpa_s->scan_res_handler(wpa_s, scan_res); + void (*scan_res_handler)(struct wpa_supplicant *wpa_s, + struct wpa_scan_results *scan_res); + + scan_res_handler = wpa_s->scan_res_handler; wpa_s->scan_res_handler = NULL; + scan_res_handler(wpa_s, scan_res); + wpa_scan_results_free(scan_res); return; }