aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-09-28 13:29:53 -0700
committerDmitry Shmidt <dimitrysh@google.com>2011-09-28 13:29:53 -0700
commitfc41cadcff448cdd2b60e376fc6e7378e2e57b5e (patch)
treea4409808cd5df51019e8125839ee01ad6907793b /src
parent6e933c1e09094a8972ef1e782c57f8b3c55c91d0 (diff)
downloadexternal_wpa_supplicant_8-fc41cadcff448cdd2b60e376fc6e7378e2e57b5e.zip
external_wpa_supplicant_8-fc41cadcff448cdd2b60e376fc6e7378e2e57b5e.tar.gz
external_wpa_supplicant_8-fc41cadcff448cdd2b60e376fc6e7378e2e57b5e.tar.bz2
nl80211: Add get_noa() support for WFD certification (BRCM)
BUG: b/5367351 Change-Id: I14ed79e10ade205c5dd4cdc0d2e888ed1279d1bb Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/drivers/driver_nl80211.c2
-rw-r--r--src/p2p/p2p_group.c8
-rw-r--r--src/p2p/p2p_i.h5
3 files changed, 13 insertions, 2 deletions
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index dfca9ef..9dc2494 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -209,6 +209,7 @@ static int wpa_driver_nl80211_probe_req_report(void *priv, int report);
static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
enum wpa_event_type type,
const u8 *frame, size_t len);
+int wpa_driver_get_p2p_noa(void *priv, u8 *buf, size_t len);
int wpa_driver_set_p2p_noa(void *priv, u8 count, int start, int duration);
int wpa_driver_set_p2p_ps(void *priv, int legacy_ps, int opp_ps, int ctwindow);
int wpa_driver_set_ap_wps_p2p_ie(void *priv, const struct wpabuf *beacon,
@@ -6837,6 +6838,7 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
.remove_pmkid = nl80211_remove_pmkid,
.flush_pmkid = nl80211_flush_pmkid,
#ifdef ANDROID_BRCM_P2P_PATCH
+ .get_noa = wpa_driver_get_p2p_noa,
.set_noa = wpa_driver_set_p2p_noa,
.set_p2p_powersave = wpa_driver_set_p2p_ps,
.set_ap_wps_ie = wpa_driver_set_ap_wps_p2p_ie,
diff --git a/src/p2p/p2p_group.c b/src/p2p/p2p_group.c
index 9fb9f00..0d05319 100644
--- a/src/p2p/p2p_group.c
+++ b/src/p2p/p2p_group.c
@@ -499,7 +499,11 @@ int p2p_group_notif_noa(struct p2p_group *group, const u8 *noa,
} else {
if (group->noa) {
if (wpabuf_size(group->noa) >= noa_len) {
+ #ifdef ANDROID_BRCM_P2P_PATCH
+ group->noa->used = 0;
+ #else
group->noa->size = 0;
+ #endif
wpabuf_put_data(group->noa, noa, noa_len);
} else {
wpabuf_free(group->noa);
@@ -658,11 +662,11 @@ u8 p2p_group_presence_req(struct p2p_group *group,
else
wpa_hexdump(MSG_DEBUG, "P2P: Current NoA", curr_noa,
curr_noa_len);
-
+#ifndef ANDROID_BRCM_P2P_PATCH
/* TODO: properly process request and store copy */
if (curr_noa_len > 0)
return P2P_SC_FAIL_UNABLE_TO_ACCOMMODATE;
-
+#endif
return P2P_SC_SUCCESS;
}
diff --git a/src/p2p/p2p_i.h b/src/p2p/p2p_i.h
index 52d9311..afb891e 100644
--- a/src/p2p/p2p_i.h
+++ b/src/p2p/p2p_i.h
@@ -532,6 +532,11 @@ struct p2p_noa_desc {
/* p2p_group.c */
const u8 * p2p_group_get_interface_addr(struct p2p_group *group);
+
+#ifdef ANDROID_BRCM_P2P_PATCH
+void p2p_get_group_noa(struct p2p_group *group, u8 *noa, size_t* noa_len);
+#endif
+
u8 p2p_group_presence_req(struct p2p_group *group,
const u8 *client_interface_addr,
const u8 *noa, size_t noa_len);