]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Clean up wpas_p2p_init_go_params()
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 18 Nov 2013 16:13:15 +0000 (18:13 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 18 Nov 2013 16:13:15 +0000 (18:13 +0200)
It is clearer if there is only a single loop of the channel list and
shared debug prints. In addition, the note about current operating
channels not being available is quite confusing if there are no
operating group, so make that part of the message conditional.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

wpa_supplicant/p2p_supplicant.c

index 1ea5afc0673528af68ca64fc534eaca5b13ddd1c..e8a37700f0e06acf82075f3accba3e58f84dfcf4 100644 (file)
@@ -4608,41 +4608,32 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
        }
        num = res;
 
-       if (!freq) {
-               for (i = 0; i < num; i++) {
-                       if (freq_included(channels, freqs[i])) {
-                               wpa_printf(MSG_DEBUG, "P2P: Force GO on a channel we are already using (%u MHz)",
-                                          freqs[i]);
-                               params->freq = freqs[i];
-                               break;
-                       }
-               }
-
-               if (i == num) {
-                       if (wpas_p2p_num_unused_channels(wpa_s) <= 0) {
-                               wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using");
-                               os_free(freqs);
-                               return -1;
-                       } else {
-                               wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using. Use one of the free channels");
-                       }
-               }
-       } else {
-               for (i = 0; i < num; i++) {
-                       if (freqs[i] == freq)
-                               break;
+       for (i = 0; i < num; i++) {
+               if (freq && freqs[i] == freq)
+                       break;
+               if (!freq && freq_included(channels, freqs[i])) {
+                       wpa_printf(MSG_DEBUG, "P2P: Force GO on a channel we are already using (%u MHz)",
+                                  freqs[i]);
+                       params->freq = freqs[i];
+                       break;
                }
+       }
 
-               if (i == num) {
-                       if (wpas_p2p_num_unused_channels(wpa_s) <= 0) {
+       if (i == num) {
+               if (wpas_p2p_num_unused_channels(wpa_s) <= 0) {
+                       if (freq)
                                wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on freq (%u MHz) as all the channels are in use", freq);
-                               os_free(freqs);
-                               return -1;
-                       } else {
-                               wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using. Use one of the free channels");
-                       }
+                       else
+                               wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using");
+                       os_free(freqs);
+                       return -1;
+               } else if (num == 0) {
+                       wpa_printf(MSG_DEBUG, "P2P: Use one of the free channels");
+               } else {
+                       wpa_printf(MSG_DEBUG, "P2P: Cannot force GO on any of the channels we are already using. Use one of the free channels");
                }
        }
+
        os_free(freqs);
        return 0;
 }