diff mbox

[2/2] P2P: respect p2p_ignore_shared_freq on p2p_group_add

Message ID 1457021910-28201-2-git-send-email-eliad@wizery.com
State Accepted
Headers show

Commit Message

Eliad Peller March 3, 2016, 4:18 p.m. UTC
Make sure wpas_p2p_init_go_params respects
the p2p_ignore_shared_freq configuration option.

Choose currently used frequencies only if this
option is not set, or there are no unused channels
left.

Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 wpa_supplicant/p2p_supplicant.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 3295654..0c61621 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -5767,6 +5767,7 @@  static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
 	unsigned int cand;
 	unsigned int num, i;
 	int ignore_no_freqs = 0;
+	int unused_channels = wpas_p2p_num_unused_channels(wpa_s) > 0;
 
 	os_memset(params, 0, sizeof(*params));
 	params->role_go = 1;
@@ -5823,8 +5824,7 @@  static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
 			}
 		}
 
-		if (!ignore_no_freqs &&
-		    wpas_p2p_num_unused_channels(wpa_s) <= 0) {
+		if (!ignore_no_freqs && !unused_channels) {
 			wpa_printf(MSG_DEBUG,
 				   "P2P: Cannot force GO on freq (%d MHz) as all the channels are in use",
 				   freq);
@@ -5839,7 +5839,8 @@  static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
 	}
 
 	/* consider using one of the shared frequencies */
-	if (num) {
+	if (num &&
+	    (!wpa_s->conf->p2p_ignore_shared_freq || !unused_channels)) {
 		cand = wpas_p2p_pick_best_used_freq(wpa_s, freqs, num);
 		if (wpas_p2p_supported_freq_go(wpa_s, channels, cand)) {
 			wpa_printf(MSG_DEBUG,
@@ -5862,8 +5863,7 @@  static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
 		}
 	}
 
-	if (!ignore_no_freqs &&
-	    wpas_p2p_num_unused_channels(wpa_s) <= 0) {
+	if (!ignore_no_freqs && !unused_channels) {
 		wpa_printf(MSG_DEBUG,
 			   "P2P: Cannot force GO on any of the channels we are already using");
 		goto fail;