3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-29 13:59:24 +01:00

station: add RoamRetryInterval setting

This commit is contained in:
Alvin Šipraga 2021-01-22 13:37:01 +00:00 committed by Denis Kenzior
parent f456501b9e
commit 4266b88658

View File

@ -29,6 +29,7 @@
#include <errno.h> #include <errno.h>
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
#include <limits.h>
#include <linux/if_ether.h> #include <linux/if_ether.h>
#include <ell/ell.h> #include <ell/ell.h>
@ -57,6 +58,7 @@
static struct l_queue *station_list; static struct l_queue *station_list;
static uint32_t netdev_watch; static uint32_t netdev_watch;
static uint32_t mfp_setting; static uint32_t mfp_setting;
static uint32_t roam_retry_interval;
static bool anqp_disabled; static bool anqp_disabled;
static bool netconfig_enabled; static bool netconfig_enabled;
static struct watchlist anqp_watches; static struct watchlist anqp_watches;
@ -1369,7 +1371,7 @@ static void station_roamed(struct station *station)
* remain low. A subsequent high signal notification will cancel it. * remain low. A subsequent high signal notification will cancel it.
*/ */
if (station->signal_low) if (station->signal_low)
station_roam_timeout_rearm(station, 60); station_roam_timeout_rearm(station, roam_retry_interval);
if (station->netconfig) if (station->netconfig)
netconfig_reconfigure(station->netconfig); netconfig_reconfigure(station->netconfig);
@ -1416,7 +1418,7 @@ delayed_retry:
station->ap_directed_roaming = false; station->ap_directed_roaming = false;
if (station->signal_low) if (station->signal_low)
station_roam_timeout_rearm(station, 60); station_roam_timeout_rearm(station, roam_retry_interval);
} }
static void station_netconfig_event_handler(enum netconfig_event event, static void station_netconfig_event_handler(enum netconfig_event event,
@ -3646,6 +3648,14 @@ static int station_init(void)
mfp_setting = 1; mfp_setting = 1;
} }
if (!l_settings_get_uint(iwd_get_config(), "General",
"RoamRetryInterval",
&roam_retry_interval))
roam_retry_interval = 60;
if (roam_retry_interval > INT_MAX)
roam_retry_interval = INT_MAX;
if (!l_settings_get_bool(iwd_get_config(), "General", "DisableANQP", if (!l_settings_get_bool(iwd_get_config(), "General", "DisableANQP",
&anqp_disabled)) &anqp_disabled))
anqp_disabled = true; anqp_disabled = true;