From: Ahmad Kholaif Date: Fri, 24 Jul 2015 08:56:48 +0000 (-0700) Subject: P2P: Do not omit known operating channel preference from GO Neg Resp X-Git-Tag: hostap_2_5~258 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ef54bd30e3d6d66fe060098c45c61dfaf87e00e;p=thirdparty%2Fhostap.git P2P: Do not omit known operating channel preference from GO Neg Resp Add an extra condition to omit operating channel preference when building GO Negotiation Response. If the local device supports the preferred frequency list extension, then when sending a GO Negotiation Response frame, advertise the preferred operating channel unless local device is assuming the P2P Client role and has an empty preferred frequency list, in which case local device can omit its preference for the operating channel. This change helps make use of the preferred frequency list and the calculated best channel for both negotiating parties of the P2P connection. Signed-off-by: Jouni Malinen --- diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c index d47763ac5..4752b2947 100644 --- a/src/p2p/p2p_go_neg.c +++ b/src/p2p/p2p_go_neg.c @@ -315,7 +315,7 @@ static struct wpabuf * p2p_build_go_neg_resp(struct p2p_data *p2p, group_capab); p2p_buf_add_go_intent(buf, (p2p->go_intent << 1) | tie_breaker); p2p_buf_add_config_timeout(buf, p2p->go_timeout, p2p->client_timeout); - if (peer && peer->go_state == REMOTE_GO) { + if (peer && peer->go_state == REMOTE_GO && !p2p->num_pref_freq) { p2p_dbg(p2p, "Omit Operating Channel attribute"); } else { p2p_buf_add_operating_channel(buf, p2p->cfg->country,