From 25592b236bf2a990505ee301675d023b7f291036 Mon Sep 17 00:00:00 2001 From: Janusz Dziedzic Date: Wed, 8 Jan 2014 11:27:47 +0100 Subject: [PATCH] hostapd: DFS/CSA check if CSA in progress Check if CSA is already in progress, before triggering a new channel switch. Signed-hostap: Janusz Dziedzic --- src/ap/dfs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ap/dfs.c b/src/ap/dfs.c index caf40927f..dea4781e5 100644 --- a/src/ap/dfs.c +++ b/src/ap/dfs.c @@ -680,14 +680,18 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface) struct hostapd_data *hapd = iface->bss[0]; int err = 1; - wpa_printf(MSG_DEBUG, "%s called (CAC active: %s)", __func__, - iface->cac_started ? "yes" : "no"); + wpa_printf(MSG_DEBUG, "%s called (CAC active: %s, CSA active: %s)", + __func__, iface->cac_started ? "yes" : "no", + iface->csa_in_progress ? "yes" : "no"); + + /* Check if CSA in progress */ + if (iface->csa_in_progress) + return 0; /* Check if active CAC */ if (iface->cac_started) return hostapd_dfs_start_channel_switch_cac(iface); - /* Perform channel switch/CSA */ channel = dfs_get_valid_channel(iface, &secondary_channel, &vht_oper_centr_freq_seg0_idx,