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>
This commit is contained in:
David Bauer 2020-05-12 14:28:53 +02:00 committed by Beniamino Galvani
parent 45ab623c12
commit 5490011782

View file

@ -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);
}