Patchwork P2P: Fix duplicate handling of rx action frames

login
register
mail settings
Submitter Eyal Shapira
Date Nov. 5, 2012, 8:35 a.m.
Message ID <1352104531-18651-1-git-send-email-eyal@wizery.com>
Download mbox | patch
Permalink /patch/197163/
State New
Headers show

Comments

Eyal Shapira - Nov. 5, 2012, 8:35 a.m.
When using a separate group iface both p2p device iface
and the group iface are registered for action frames.
This causes duplicate handling of rx action frames.
One side effect of this is getting multiple responses for
requests sent over action frames while GO/CLI are up
like prov disc and dev disc.
Fix this by discarding the duplicate p2p action frames received
on the group iface. The code will handle all of these correctly
when coming on the p2p dev iface as it looks at the DA when
where relevant.

Signed-hostap: Eyal Shapira <eyal@wizery.com>
---
 wpa_supplicant/p2p_supplicant.c |    6 ++++++
 1 file changed, 6 insertions(+)

Patch

diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index cf90fbd..8c54cb0 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -4497,6 +4497,12 @@  void wpas_p2p_rx_action(struct wpa_supplicant *wpa_s, const u8 *da,
 	if (wpa_s->global->p2p == NULL)
 		return;
 
+	if (wpa_s->p2p_group_interface != NOT_P2P_GROUP_INTERFACE) {
+		wpa_printf(MSG_DEBUG, "Discard RX action event on P2P "
+			   "GO/CLI iface. P2P Device interface will handle it");
+		return;
+	}
+
 	p2p_rx_action(wpa_s->global->p2p, da, sa, bssid, category, data, len,
 		      freq);
 }