mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-26 02:19:26 +01:00
ft: set OCVC false for FT-over-DS
FT-over-DS cannot use OCV due to how the kernel works. This means we could connect initially with OCVC set, but a FT-over-DS attempt needs to unset OCVC. Set OCVC false when rebuilding the RSNE for reassociation.
This commit is contained in:
parent
bc0375fb30
commit
c4c14f3ac0
7
src/ft.c
7
src/ft.c
@ -43,6 +43,8 @@ struct ft_sm {
|
|||||||
ft_get_oci get_oci;
|
ft_get_oci get_oci;
|
||||||
|
|
||||||
void *user_data;
|
void *user_data;
|
||||||
|
|
||||||
|
bool over_ds : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -236,6 +238,10 @@ static int ft_tx_reassociate(struct ft_sm *ft)
|
|||||||
rsn_info.num_pmkids = 1;
|
rsn_info.num_pmkids = 1;
|
||||||
rsn_info.pmkids = hs->pmk_r1_name;
|
rsn_info.pmkids = hs->pmk_r1_name;
|
||||||
|
|
||||||
|
/* Always set OCVC false for FT-over-DS */
|
||||||
|
if (ft->over_ds)
|
||||||
|
rsn_info.ocvc = false;
|
||||||
|
|
||||||
rsne = alloca(256);
|
rsne = alloca(256);
|
||||||
ie_build_rsne(&rsn_info, rsne);
|
ie_build_rsne(&rsn_info, rsne);
|
||||||
|
|
||||||
@ -929,6 +935,7 @@ struct auth_proto *ft_over_ds_sm_new(struct handshake_state *hs,
|
|||||||
ft->tx_assoc = tx_assoc;
|
ft->tx_assoc = tx_assoc;
|
||||||
ft->hs = hs;
|
ft->hs = hs;
|
||||||
ft->user_data = user_data;
|
ft->user_data = user_data;
|
||||||
|
ft->over_ds = true;
|
||||||
|
|
||||||
ft->ap.rx_associate = ft_rx_associate;
|
ft->ap.rx_associate = ft_rx_associate;
|
||||||
ft->ap.start = ft_over_ds_start;
|
ft->ap.start = ft_over_ds_start;
|
||||||
|
Loading…
Reference in New Issue
Block a user