P2P: Update peer WFD IE from PD Response and GO Negotiation Response

Update the peer WFD IE information based on WFD elements received in
Provision Discovery Response and GO Negotiation Response frames.

Signed-off-by: Avichal Agarwal <avichal.a@samsung.com>
Signed-off-by: Kyeong-Chae Lim <kcya.lim@samsung.com>
This commit is contained in:
Avichal Agarwal 2016-03-04 11:38:26 +09:00 committed by Jouni Malinen
parent c69ef1d2da
commit 35986959d9
2 changed files with 8 additions and 0 deletions

View file

@ -1268,6 +1268,11 @@ void p2p_process_go_neg_resp(struct p2p_data *p2p, const u8 *sa,
dev->client_timeout = msg.config_timeout[1]; dev->client_timeout = msg.config_timeout[1];
} }
if (msg.wfd_subelems) {
wpabuf_free(dev->info.wfd_subelems);
dev->info.wfd_subelems = wpabuf_dup(msg.wfd_subelems);
}
if (!msg.operating_channel && !go) { if (!msg.operating_channel && !go) {
/* /*
* Note: P2P Client may omit Operating Channel attribute to * Note: P2P Client may omit Operating Channel attribute to

View file

@ -1349,6 +1349,9 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
" with no pending request", MAC2STR(sa)); " with no pending request", MAC2STR(sa));
p2p_parse_free(&msg); p2p_parse_free(&msg);
return; return;
} else if (msg.wfd_subelems) {
wpabuf_free(dev->info.wfd_subelems);
dev->info.wfd_subelems = wpabuf_dup(msg.wfd_subelems);
} }
if (dev->dialog_token != msg.dialog_token) { if (dev->dialog_token != msg.dialog_token) {