From: Chaitanya TK Date: Sat, 30 Mar 2013 18:08:42 +0000 (+0200) Subject: P2P: Omit P2P Group Info in case of no connected peers X-Git-Tag: aosp-kk-from-upstream~394 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=558d69e3ba17093c3e800dd18faed5e17506af56;p=thirdparty%2Fhostap.git P2P: Omit P2P Group Info in case of no connected peers As per P2P specification v1.2: "The P2P Group Info attribute shall be omitted if there are zero connected P2P Clients." Do not add the attribute if there are not connected peers. Signed-hostap: Chaitanya T K --- diff --git a/src/p2p/p2p_group.c b/src/p2p/p2p_group.c index edb8d721b..852ddf5fc 100644 --- a/src/p2p/p2p_group.c +++ b/src/p2p/p2p_group.c @@ -399,7 +399,6 @@ static void wifi_display_group_update(struct p2p_group *group) static struct wpabuf * p2p_group_build_probe_resp_ie(struct p2p_group *group) { - u8 *group_info; struct wpabuf *p2p_subelems, *ie; struct p2p_group_member *m; @@ -413,14 +412,18 @@ static struct wpabuf * p2p_group_build_probe_resp_ie(struct p2p_group *group) /* P2P Device Info */ p2p_buf_add_device_info(p2p_subelems, group->p2p, NULL); - /* P2P Group Info */ - group_info = wpabuf_put(p2p_subelems, 0); - wpabuf_put_u8(p2p_subelems, P2P_ATTR_GROUP_INFO); - wpabuf_put_le16(p2p_subelems, 0); /* Length to be filled */ - for (m = group->members; m; m = m->next) - p2p_client_info(p2p_subelems, m); - WPA_PUT_LE16(group_info + 1, - (u8 *) wpabuf_put(p2p_subelems, 0) - group_info - 3); + /* P2P Group Info: Only when at least one P2P Client is connected */ + if (group->members) { + u8 *group_info; + group_info = wpabuf_put(p2p_subelems, 0); + wpabuf_put_u8(p2p_subelems, P2P_ATTR_GROUP_INFO); + wpabuf_put_le16(p2p_subelems, 0); /* Length to be filled */ + for (m = group->members; m; m = m->next) + p2p_client_info(p2p_subelems, m); + WPA_PUT_LE16(group_info + 1, + (u8 *) wpabuf_put(p2p_subelems, 0) - group_info - + 3); + } ie = p2p_group_encaps_probe_resp(p2p_subelems); wpabuf_free(p2p_subelems);