aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/p2p/p2p_build.c2
-rw-r--r--src/p2p/p2p_go_neg.c14
-rw-r--r--src/p2p/p2p_invitation.c8
-rw-r--r--wpa_supplicant/p2p_supplicant.c10
4 files changed, 33 insertions, 1 deletions
diff --git a/src/p2p/p2p_build.c b/src/p2p/p2p_build.c
index 66e8456..bbe2002 100644
--- a/src/p2p/p2p_build.c
+++ b/src/p2p/p2p_build.c
@@ -135,6 +135,7 @@ void p2p_buf_add_channel_list(struct wpabuf *buf, const char *country,
wpa_printf(MSG_DEBUG, "P2P: * Channel List");
}
+#ifdef ANDROID_P2P
/* Adds a given channel as the only channel in channel list attribute */
void p2p_buf_add_oper_as_channel_list(struct wpabuf *buf, const char *country,
u8 reg_class, u8 channel)
@@ -156,6 +157,7 @@ void p2p_buf_add_oper_as_channel_list(struct wpabuf *buf, const char *country,
WPA_PUT_LE16(len, (u8 *) wpabuf_put(buf, 0) - len - 2);
wpa_printf(MSG_DEBUG, "P2P: * Oper as Channel List %u", channel);
}
+#endif
void p2p_buf_add_status(struct wpabuf *buf, u8 status)
{
diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c
index 0324fe5..b0b53fe 100644
--- a/src/p2p/p2p_go_neg.c
+++ b/src/p2p/p2p_go_neg.c
@@ -174,13 +174,17 @@ static struct wpabuf * p2p_build_go_neg_req(struct p2p_data *p2p,
p2p_buf_add_ext_listen_timing(buf, p2p->ext_listen_period,
p2p->ext_listen_interval);
p2p_buf_add_intended_addr(buf, p2p->intended_addr);
+#ifdef ANDROID_P2P
if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && p2p->op_channel) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Force channel list %d", p2p->op_channel);
p2p_buf_add_oper_as_channel_list(buf, p2p->cfg->country, p2p->op_reg_class,
p2p->op_channel);
} else {
+#endif
p2p_buf_add_channel_list(buf, p2p->cfg->country, &p2p->channels);
+#ifdef ANDROID_P2P
}
+#endif
p2p_buf_add_device_info(buf, p2p, peer);
p2p_buf_add_operating_channel(buf, p2p->cfg->country,
p2p->op_reg_class, p2p->op_channel);
@@ -300,14 +304,18 @@ static struct wpabuf * p2p_build_go_neg_resp(struct p2p_data *p2p,
p2p_buf_add_go_intent(buf, (p2p->go_intent << 1) | tie_breaker);
p2p_buf_add_config_timeout(buf, p2p->go_timeout, p2p->client_timeout);
if (peer && peer->go_state == REMOTE_GO) {
+#ifdef ANDROID_P2P
if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && p2p->op_channel) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Forcing a channel ");
p2p_buf_add_operating_channel(buf, p2p->cfg->country,
p2p->op_reg_class, p2p->op_channel);
} else {
+#endif
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Omit Operating "
"Channel attribute");
+#ifdef ANDROID_P2P
}
+#endif
} else {
p2p_buf_add_operating_channel(buf, p2p->cfg->country,
p2p->op_reg_class,
@@ -315,11 +323,13 @@ static struct wpabuf * p2p_build_go_neg_resp(struct p2p_data *p2p,
}
p2p_buf_add_intended_addr(buf, p2p->intended_addr);
+#ifdef ANDROID_P2P
if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && p2p->op_channel) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Force channel list %d", p2p->op_channel);
p2p_buf_add_oper_as_channel_list(buf, p2p->cfg->country, p2p->op_reg_class,
p2p->op_channel);
} else {
+#endif
if (status || peer == NULL) {
p2p_buf_add_channel_list(buf, p2p->cfg->country,
&p2p->channels);
@@ -332,7 +342,9 @@ static struct wpabuf * p2p_build_go_neg_resp(struct p2p_data *p2p,
&res);
p2p_buf_add_channel_list(buf, p2p->cfg->country, &res);
}
+#ifdef ANDROID_P2P
}
+#endif
p2p_buf_add_device_info(buf, p2p, peer);
if (peer && peer->go_state == LOCAL_GO) {
@@ -1188,6 +1200,7 @@ void p2p_process_go_neg_conf(struct p2p_data *p2p, const u8 *sa,
#endif /* CONFIG_P2P_STRICT */
}
+#ifdef ANDROID_P2P
if (msg.operating_channel) {
dev->oper_freq = p2p_channel_to_freq((const char *)
msg.operating_channel,
@@ -1197,6 +1210,7 @@ void p2p_process_go_neg_conf(struct p2p_data *p2p, const u8 *sa,
"channel preference: %d MHz", dev->oper_freq);
} else
dev->oper_freq = 0;
+#endif
if (!msg.channel_list) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,
diff --git a/src/p2p/p2p_invitation.c b/src/p2p/p2p_invitation.c
index b237cf8..785200c 100644
--- a/src/p2p/p2p_invitation.c
+++ b/src/p2p/p2p_invitation.c
@@ -66,13 +66,17 @@ static struct wpabuf * p2p_build_invitation_req(struct p2p_data *p2p,
p2p->op_reg_class, p2p->op_channel);
if (p2p->inv_bssid_set)
p2p_buf_add_group_bssid(buf, p2p->inv_bssid);
+#ifdef ANDROID_P2P
if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && p2p->op_channel) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "Forcing channel list %d", p2p->op_channel);
p2p_buf_add_oper_as_channel_list(buf, p2p->cfg->country, p2p->op_reg_class,
p2p->op_channel);
} else {
+#endif
p2p_buf_add_channel_list(buf, p2p->cfg->country, &p2p->channels);
+#ifdef ANDROID_P2P
}
+#endif
if (go_dev_addr)
dev_addr = go_dev_addr;
else if (p2p->inv_role == P2P_INVITE_ROLE_CLIENT)
@@ -139,14 +143,18 @@ static struct wpabuf * p2p_build_invitation_resp(struct p2p_data *p2p,
reg_class, channel);
if (group_bssid)
p2p_buf_add_group_bssid(buf, group_bssid);
+#ifdef ANDROID_P2P
if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && channel) {
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "Forcing channel list %d", channel);
p2p_buf_add_oper_as_channel_list(buf, p2p->cfg->country,
reg_class, channel);
} else {
+#endif
if (channels)
p2p_buf_add_channel_list(buf, p2p->cfg->country, channels);
+#ifdef ANDROID_P2P
}
+#endif
p2p_buf_update_ie_hdr(buf, len);
#ifdef CONFIG_WIFI_DISPLAY
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 53b2d5d..903c94f 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -4431,7 +4431,9 @@ int wpas_p2p_invite(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
{
enum p2p_invite_role role;
u8 *bssid = NULL;
+#ifdef ANDROID_P2P
int force_freq = 0, oper_freq = 0;
+#endif
wpa_s->p2p_persistent_go_freq = freq;
wpa_s->p2p_go_ht40 = !!ht40;
@@ -4459,6 +4461,7 @@ int wpas_p2p_invite(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
}
wpa_s->pending_invite_ssid_id = ssid->id;
+#ifdef ANDROID_P2P
if (wpa_s->current_ssid && wpa_drv_get_bssid(wpa_s, bssid) == 0 &&
wpa_s->assoc_freq)
oper_freq = wpa_s->assoc_freq;
@@ -4506,7 +4509,7 @@ int wpas_p2p_invite(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
"interface", oper_freq);
force_freq = oper_freq;
}
-
+#endif
if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_P2P_MGMT)
return wpa_drv_p2p_invite(wpa_s, peer_addr, role, bssid,
ssid->ssid, ssid->ssid_len,
@@ -4515,8 +4518,13 @@ int wpas_p2p_invite(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
return -1;
+#ifdef ANDROID_P2P
return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid,
ssid->ssid, ssid->ssid_len, force_freq, go_dev_addr, 1);
+#else
+ return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid,
+ ssid->ssid, ssid->ssid_len, freq, go_dev_addr, 1);
+#endif
}