resp = p2p_process_invitation_req(p2p, mgmt->sa,
data + 1,
- data_len - 1, freq);
+ data_len - 1, freq,
+ true);
if (!resp)
p2p_dbg(p2p, "No Invitation Response found");
* @channels: Available operating channels for the group
* @dev_pw_id: Device Password ID for NFC static handover or -1 if not
* used
+ * @p2p2: Whether invitation request was wrapped in PASN authentication
+ * received from a P2P2 device
* Returns: Status code (P2P_SC_*)
*
* This optional callback can be used to implement persistent reconnect
size_t ssid_len, int *go, u8 *group_bssid,
int *force_freq, int persistent_group,
const struct p2p_channels *channels,
- int dev_pw_id);
+ int dev_pw_id, bool p2p2);
/**
* invitation_received - Callback on Invitation Request RX
const u8 *data, size_t len);
struct wpabuf * p2p_process_invitation_req(struct p2p_data *p2p, const u8 *sa,
const u8 *data, size_t len,
- int rx_freq);
+ int rx_freq, bool p2p2);
void p2p_process_invitation_resp(struct p2p_data *p2p, const u8 *sa,
const u8 *data, size_t len);
int p2p_invite_send(struct p2p_data *p2p, struct p2p_device *dev,
struct wpabuf * p2p_process_invitation_req(struct p2p_data *p2p, const u8 *sa,
const u8 *data, size_t len,
- int rx_freq)
+ int rx_freq, bool p2p2)
{
struct p2p_device *dev;
struct p2p_message msg;
p2p->cfg->cb_ctx, sa, msg.group_bssid, msg.group_id,
msg.group_id + ETH_ALEN, msg.group_id_len - ETH_ALEN,
&go, group_bssid, &op_freq, persistent, &intersection,
- msg.dev_password_id_present ? msg.dev_password_id : -1);
+ msg.dev_password_id_present ? msg.dev_password_id : -1,
+ p2p2);
}
if (go) {
int freq;
struct wpabuf *resp;
- resp = p2p_process_invitation_req(p2p, sa, data, len, rx_freq);
+ resp = p2p_process_invitation_req(p2p, sa, data, len, rx_freq, false);
if (!resp)
return;
size_t ssid_len, int *go, u8 *group_bssid,
int *force_freq, int persistent_group,
const struct p2p_channels *channels,
- int dev_pw_id)
+ int dev_pw_id, bool p2p2)
{
struct wpa_supplicant *wpa_s = ctx;
struct wpa_ssid *s;
for (s = wpa_s->conf->ssid; s; s = s->next) {
if (s->disabled == 2 &&
- ether_addr_equal(s->bssid, go_dev_addr) &&
+ (p2p2 || ether_addr_equal(s->bssid, go_dev_addr)) &&
s->ssid_len == ssid_len &&
os_memcmp(ssid, s->ssid, ssid_len) == 0)
break;