P2P: Do not allow re-selection of GO channel if forced_freq in use

Even if the peer does not accept the forced channel, we should not allow
the forced_freq parameter to be be overridden, i.e., such a case needs
to result in GO Negotiation failure.

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2012-12-27 08:06:55 +02:00
parent 92ac756c84
commit bd594ea0da
1 changed files with 8 additions and 1 deletions

View File

@ -442,8 +442,15 @@ static int p2p_go_select_channel(struct p2p_data *p2p, struct p2p_device *dev,
}
if (!p2p_channels_includes(&intersection, p2p->op_reg_class,
p2p->op_channel))
p2p->op_channel)) {
if (dev->flags & P2P_DEV_FORCE_FREQ) {
*status = P2P_SC_FAIL_NO_COMMON_CHANNELS;
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Peer does "
"not support the forced channel");
return -1;
}
p2p_reselect_channel(p2p, &intersection);
}
if (!p2p->ssid_set) {
p2p_build_ssid(p2p, p2p->ssid, &p2p->ssid_len);