diff options
author | David Bauer <mail@david-bauer.net> | 2020-05-12 14:28:53 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2020-06-09 16:07:04 +0200 |
commit | 5490011782a8946293489cc25f679d3523138e0e (patch) | |
tree | c059e14b63e6686bea0d1af73ea2601292eea693 /src/supplicant | |
parent | 45ab623c12e5af91eef1a473ab8d03d63c31cb35 (diff) |
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 <mail@david-bauer.net>
Diffstat (limited to 'src/supplicant')
-rw-r--r-- | src/supplicant/nm-supplicant-interface.c | 26 |
1 files 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); } |