]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
D-Bus: Add Signal to notify WPS PBC Overlap event
authorSaurav Babu <saurav.babu@samsung.com>
Thu, 28 May 2015 03:53:07 +0000 (09:23 +0530)
committerJouni Malinen <j@w1.fi>
Sun, 27 Sep 2015 09:52:34 +0000 (12:52 +0300)
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
wpa_supplicant/events.c
wpa_supplicant/wps_supplicant.c
wpa_supplicant/wps_supplicant.h

index 45ae7ea54c4739268698298982b4b1f60af95c39..3af1c7d89c64901ba4663199c88af0e2edd4a19b 100644 (file)
@@ -1201,6 +1201,7 @@ int wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
 #endif /* CONFIG_P2P */
 
 #ifdef CONFIG_WPS
+               wpas_wps_pbc_overlap(wpa_s);
                wpas_wps_cancel(wpa_s);
 #endif /* CONFIG_WPS */
                return -1;
index e612ca35bfd5d8dab6d0d48b8e391e564e3ab3c2..60f761c81b80977ac62a1175a3ff5543e0c023cf 100644 (file)
@@ -1248,6 +1248,22 @@ int wpas_wps_start_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
 }
 
 
+void wpas_wps_pbc_overlap(struct wpa_supplicant *wpa_s)
+{
+       union wps_event_data data;
+
+       os_memset(&data, 0, sizeof(data));
+       data.fail.config_error = WPS_CFG_MULTIPLE_PBC_DETECTED;
+       data.fail.error_indication = WPS_EI_NO_ERROR;
+       /*
+        * Call wpas_notify_wps_event_fail() directly instead of through
+        * wpa_supplicant_wps_event() which would end up registering unnecessary
+        * timeouts (those are only for the case where the failure happens
+        * during an EAP-WSC exchange).
+        */
+       wpas_notify_wps_event_fail(wpa_s, &data.fail);
+}
+
 /* Cancel the wps pbc/pin requests */
 int wpas_wps_cancel(struct wpa_supplicant *wpa_s)
 {
index 683bd50e4bab05b46ea8ea005e42cd473dcd0ccb..3c25ca86dc65e7d757b85d22e69e931107f75aae 100644 (file)
@@ -33,6 +33,7 @@ int wpas_wps_start_pbc(struct wpa_supplicant *wpa_s, const u8 *bssid,
                       int p2p_group);
 int wpas_wps_start_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
                       const char *pin, int p2p_group, u16 dev_pw_id);
+void wpas_wps_pbc_overlap(struct wpa_supplicant *wpa_s);
 int wpas_wps_cancel(struct wpa_supplicant *wpa_s);
 int wpas_wps_start_reg(struct wpa_supplicant *wpa_s, const u8 *bssid,
                       const char *pin, struct wps_new_ap_settings *settings);