summaryrefslogtreecommitdiff
path: root/src/supplicant
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2020-05-12 14:28:53 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2020-06-09 16:07:04 +0200
commit5490011782a8946293489cc25f679d3523138e0e (patch)
treec059e14b63e6686bea0d1af73ea2601292eea693 /src/supplicant
parent45ab623c12e5af91eef1a473ab8d03d63c31cb35 (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.c26
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);
}