From 0c8406780fe05c51550018d56430c4d40ed658eb Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Fri, 16 Jul 2021 19:56:10 -0500 Subject: [PATCH] knownnetworks: Parse Transition Disable settings --- src/knownnetworks.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/knownnetworks.c b/src/knownnetworks.c index 19234142..09acdd3c 100644 --- a/src/knownnetworks.c +++ b/src/knownnetworks.c @@ -97,6 +97,31 @@ void __network_config_parse(const struct l_settings *settings, NET_ADDRESS_OVERRIDE); config->always_random_addr = false; } + + if (!l_settings_get_bool(settings, NET_TRANSITION_DISABLE, &b)) + b = false; + + config->have_transition_disable = b; + if (config->have_transition_disable) { + unsigned int i; + char **modes = l_settings_get_string_list(settings, + NET_TRANSITION_DISABLE_MODES, ' '); + + for (i = 0; modes && modes[i]; i++) { + if (!strcmp(modes[i], "personal")) + set_bit(&config->transition_disable, 0); + else if (!strcmp(modes[i], "enterprise")) + set_bit(&config->transition_disable, 2); + else if (!strcmp(modes[i], "open")) + set_bit(&config->transition_disable, 3); + else + l_warn("[%s].%s: Unrecognized value: %s", + NET_TRANSITION_DISABLE_MODES, + modes[i]); + } + + l_strfreev(modes); + } } void __network_info_init(struct network_info *info,