From a812e474f9173fe846cc08ba1c4aa7a9b4071869 Mon Sep 17 00:00:00 2001 From: "arron.wang" Date: Fri, 8 Jun 2012 08:23:38 +0800 Subject: [PATCH] events: Custom event for broadcom proprietary driver --- src/drivers/driver.h | 10 +++++++++- src/drivers/driver_wext.c | 3 +++ wpa_supplicant/events.c | 9 +++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index c7b7363..bf18c34 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2887,7 +2887,15 @@ enum wpa_event_type { * This event indicates that the station responded to the poll * initiated with @poll_client. */ - EVENT_DRIVER_CLIENT_POLL_OK + EVENT_DRIVER_CLIENT_POLL_OK, + + /** + * EVENT_BROADCOM_CUSTOM - Broadcom custom event + * + * This event is sent when failing to associate while running the + * initial scan. + */ + EVENT_BROADCOM_CUSTOM }; diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c index b980c15..c837d88 100644 --- a/src/drivers/driver_wext.c +++ b/src/drivers/driver_wext.c @@ -302,6 +302,9 @@ wpa_driver_wext_event_wireless_custom(void *ctx, char *custom) } wpa_supplicant_event(ctx, EVENT_STKSTART, &data); #endif /* CONFIG_PEERKEY */ + } else if (os_strncmp(custom, "Conn NoNetworks", 15) == 0) { + wpa_printf(MSG_DEBUG, "WEXT: Broadcom custom event"); + wpa_supplicant_event(ctx, EVENT_BROADCOM_CUSTOM, &data); } } diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 1c3b9eb..570f51e 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -2490,6 +2490,15 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, wpas_wps_start_pbc(wpa_s, NULL, 0); #endif /* CONFIG_WPS */ break; + case EVENT_BROADCOM_CUSTOM: + wpa_printf(MSG_DEBUG, "Broadcom event in state %d", + wpa_s->wpa_state); + if (wpa_s->wpa_state == WPA_SCANNING) { + /* Force scanning */ + wpa_s->scan_req = 1; + wpa_supplicant_req_scan(wpa_s, 0, 0); + } + break; default: wpa_msg(wpa_s, MSG_INFO, "Unknown event %d", event); break; -- 2.7.4