|
@@ -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);
|