From 5490011782a8946293489cc25f679d3523138e0e Mon Sep 17 00:00:00 2001 From: David Bauer Date: Tue, 12 May 2020 14:28:53 +0200 Subject: nm-supplicant-interface: parse 802.11 IEs after security Psrse the 802.11 IEs after parsing the security information. Previously the OWE transition mode flag was potentially removed in case the security properties changed. Signed-off-by: David Bauer --- src/supplicant/nm-supplicant-interface.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/supplicant/nm-supplicant-interface.c b/src/supplicant/nm-supplicant-interface.c index 136b248afc..6bbeb1ebcd 100644 --- a/src/supplicant/nm-supplicant-interface.c +++ b/src/supplicant/nm-supplicant-interface.c @@ -702,6 +702,19 @@ _bss_info_properties_changed (NMSupplicantInterface *self, p_max_rate_has = TRUE; g_variant_unref (v_v); } + + v_v = nm_g_variant_lookup_value (properties, "WPA", G_VARIANT_TYPE_VARDICT); + if (v_v) { + bss_info->wpa_flags = security_from_vardict (v_v); + g_variant_unref (v_v); + } + + v_v = nm_g_variant_lookup_value (properties, "RSN", G_VARIANT_TYPE_VARDICT); + if (v_v) { + bss_info->rsn_flags = security_from_vardict (v_v); + g_variant_unref (v_v); + } + v_v = nm_g_variant_lookup_value (properties, "IEs", G_VARIANT_TYPE_BYTESTRING); if (v_v) { gboolean p_owe_transition_mode; @@ -721,21 +734,10 @@ _bss_info_properties_changed (NMSupplicantInterface *self, bss_info->metered = p_metered; } + if (p_max_rate_has) bss_info->max_rate = p_max_rate / 1000u; - v_v = nm_g_variant_lookup_value (properties, "WPA", G_VARIANT_TYPE_VARDICT); - if (v_v) { - bss_info->wpa_flags = security_from_vardict (v_v); - g_variant_unref (v_v); - } - - v_v = nm_g_variant_lookup_value (properties, "RSN", G_VARIANT_TYPE_VARDICT); - if (v_v) { - bss_info->rsn_flags = security_from_vardict (v_v); - g_variant_unref (v_v); - } - _bss_info_changed_emit (self, bss_info, TRUE); } -- cgit v1.2.1