]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
ACS: Simplify code paths
authorJouni Malinen <j@w1.fi>
Sat, 4 Mar 2017 11:22:46 +0000 (13:22 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 4 Mar 2017 15:30:10 +0000 (17:30 +0200)
This removes some unnecessarily duplicated return paths and simplifies
code paths.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/ap/acs.c

index 5e8380535854fd18fb837ac6b2f60f2555bf510a..0cef2bff537a1f57c6b5f2036b4804697b8421d7 100644 (file)
@@ -331,10 +331,8 @@ acs_survey_chan_interference_factor(struct hostapd_iface *iface,
        long double int_factor = 0;
        unsigned count = 0;
 
-       if (dl_list_empty(&chan->survey_list))
-               return;
-
-       if (chan->flag & HOSTAPD_CHAN_DISABLED)
+       if (dl_list_empty(&chan->survey_list) ||
+           (chan->flag & HOSTAPD_CHAN_DISABLED))
                return;
 
        chan->interference_factor = 0;
@@ -359,9 +357,8 @@ acs_survey_chan_interference_factor(struct hostapd_iface *iface,
                           (unsigned long) survey->channel_time_rx);
        }
 
-       if (!count)
-               return;
-       chan->interference_factor /= count;
+       if (count)
+               chan->interference_factor /= count;
 }
 
 
@@ -450,13 +447,9 @@ static int acs_surveys_are_sufficient(struct hostapd_iface *iface)
 
        for (i = 0; i < iface->current_mode->num_channels; i++) {
                chan = &iface->current_mode->channels[i];
-               if (chan->flag & HOSTAPD_CHAN_DISABLED)
-                       continue;
-
-               if (!acs_survey_list_is_sufficient(chan))
-                       continue;
-
-               valid++;
+               if (!(chan->flag & HOSTAPD_CHAN_DISABLED) &&
+                   acs_survey_list_is_sufficient(chan))
+                       valid++;
        }
 
        /* We need at least survey data for one channel */
@@ -466,13 +459,9 @@ static int acs_surveys_are_sufficient(struct hostapd_iface *iface)
 
 static int acs_usable_chan(struct hostapd_channel_data *chan)
 {
-       if (dl_list_empty(&chan->survey_list))
-               return 0;
-       if (chan->flag & HOSTAPD_CHAN_DISABLED)
-               return 0;
-       if (!acs_survey_list_is_sufficient(chan))
-               return 0;
-       return 1;
+       return !dl_list_empty(&chan->survey_list) &&
+               !(chan->flag & HOSTAPD_CHAN_DISABLED) &&
+               acs_survey_list_is_sufficient(chan);
 }
 
 
@@ -788,10 +777,7 @@ static int acs_study_survey_based(struct hostapd_iface *iface)
 
 static int acs_study_options(struct hostapd_iface *iface)
 {
-       int err;
-
-       err = acs_study_survey_based(iface);
-       if (err == 0)
+       if (acs_study_survey_based(iface) == 0)
                return 0;
 
        /* TODO: If no surveys are available/sufficient this is a good
@@ -920,14 +906,11 @@ static int acs_request_scan(struct hostapd_iface *iface)
 
 enum hostapd_chan_status acs_init(struct hostapd_iface *iface)
 {
-       int err;
-
        wpa_printf(MSG_INFO, "ACS: Automatic channel selection started, this may take a bit");
 
        if (iface->drv_flags & WPA_DRIVER_FLAGS_ACS_OFFLOAD) {
                wpa_printf(MSG_INFO, "ACS: Offloading to driver");
-               err = hostapd_drv_do_acs(iface->bss[0]);
-               if (err)
+               if (hostapd_drv_do_acs(iface->bss[0]))
                        return HOSTAPD_CHAN_INVALID;
                return HOSTAPD_CHAN_ACS;
        }
@@ -937,8 +920,7 @@ enum hostapd_chan_status acs_init(struct hostapd_iface *iface)
 
        acs_cleanup(iface);
 
-       err = acs_request_scan(iface);
-       if (err < 0)
+       if (acs_request_scan(iface) < 0)
                return HOSTAPD_CHAN_INVALID;
 
        hostapd_set_state(iface, HAPD_IFACE_ACS);