From 0ef54bd30e3d6d66fe060098c45c61dfaf87e00e Mon Sep 17 00:00:00 2001 From: Ahmad Kholaif Date: Fri, 24 Jul 2015 01:56:48 -0700 Subject: [PATCH] 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 --- src/p2p/p2p_go_neg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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,