From: Ardong Chen Date: Mon, 6 Sep 2010 15:10:55 +0000 (+0300) Subject: P2P: Process Invitation Request from previously unknown peer X-Git-Tag: hostap-1-bp~1061 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ffe98dfb88a19b66418184955ef272789e3abb68;p=thirdparty%2Fhostap.git P2P: Process Invitation Request from previously unknown peer Since this message now includes P2P Device Info attribute, it is reasonable to learn the peer data and process the message instead of rejecting the message. --- diff --git a/src/p2p/p2p_invitation.c b/src/p2p/p2p_invitation.c index c309fe191..052690b14 100644 --- a/src/p2p/p2p_invitation.c +++ b/src/p2p/p2p_invitation.c @@ -122,12 +122,27 @@ void p2p_process_invitation_req(struct p2p_data *p2p, const u8 *sa, return; dev = p2p_get_device(p2p, sa); - if (dev == NULL) { + if (dev == NULL || (dev->flags & P2P_DEV_PROBE_REQ_ONLY)) { wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, - "P2P: Reject Invitation Request from unknown peer " + "P2P: Invitation Request from unknown peer " MACSTR, MAC2STR(sa)); - status = P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE; - goto fail; + + if (p2p_add_device(p2p, sa, rx_freq, 0, data + 1, len - 1)) { + wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, + "P2P: Invitation Request add device failed " + MACSTR, MAC2STR(sa)); + status = P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE; + goto fail; + } + + dev = p2p_get_device(p2p, sa); + if (dev == NULL) { + wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, + "P2P: Reject Invitation Request from unknown " + "peer " MACSTR, MAC2STR(sa)); + status = P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE; + goto fail; + } } if (!msg.group_id || !msg.channel_list) {