Browse Source

WPS: Add more verbose debug info on PBC session overlap detection

Jouni Malinen 14 years ago
parent
commit
9647120b07
1 changed files with 20 additions and 3 deletions
  1. 20 3
      wpa_supplicant/wps_supplicant.c

+ 20 - 3
wpa_supplicant/wps_supplicant.c

@@ -1153,12 +1153,21 @@ int wpas_wps_scan_pbc_overlap(struct wpa_supplicant *wpa_s,
 	if (!eap_is_wps_pbc_enrollee(&ssid->eap))
 		return 0;
 
+	wpa_printf(MSG_DEBUG, "WPS: Check whether PBC session overlap is "
+		   "present in scan results; selected BSSID " MACSTR,
+		   MAC2STR(selected->bssid));
+
 	/* Make sure that only one AP is in active PBC mode */
 	wps_ie = wpa_bss_get_vendor_ie_multi(selected, WPS_IE_VENDOR_TYPE);
-	if (wps_ie)
+	if (wps_ie) {
 		sel_uuid = wps_get_uuid_e(wps_ie);
-	else
+		wpa_hexdump(MSG_DEBUG, "WPS: UUID of the selected BSS",
+			    sel_uuid, UUID_LEN);
+	} else {
+		wpa_printf(MSG_DEBUG, "WPS: Selected BSS does not include "
+			   "WPS IE?!");
 		sel_uuid = NULL;
+	}
 
 	dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
 		struct wpabuf *ie;
@@ -1171,10 +1180,18 @@ int wpas_wps_scan_pbc_overlap(struct wpa_supplicant *wpa_s,
 			wpabuf_free(ie);
 			continue;
 		}
+		wpa_printf(MSG_DEBUG, "WPS: Another BSS in active PBC mode: "
+			   MACSTR, MAC2STR(bss->bssid));
 		uuid = wps_get_uuid_e(ie);
+		wpa_hexdump(MSG_DEBUG, "WPS: UUID of the other BSS",
+			    uuid, UUID_LEN);
 		if (sel_uuid == NULL || uuid == NULL ||
-		    os_memcmp(sel_uuid, uuid, 16) != 0) {
+		    os_memcmp(sel_uuid, uuid, UUID_LEN) != 0) {
 			ret = 1; /* PBC overlap */
+			wpa_msg(wpa_s, MSG_INFO, "WPS: PBC overlap detected: "
+				MACSTR " and " MACSTR,
+				MAC2STR(selected->bssid),
+				MAC2STR(bss->bssid));
 			wpabuf_free(ie);
 			break;
 		}