diff options
author | Anton Nayshtut <qca_antonn@qca.qualcomm.com> | 2015-11-10 15:51:07 +0200 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-12-01 08:14:52 -0800 |
commit | cb7ecf9c78c96e154fb533510e260a259e5fad28 (patch) | |
tree | 9bdb617173923d2728a478e1d2a53cb2a114b903 /src/fst/fst_group.c | |
parent | 87704cf971d272347fa196c23e2574f0faa90a3c (diff) | |
download | android_external_wpa_supplicant_8-cb7ecf9c78c96e154fb533510e260a259e5fad28.tar.gz android_external_wpa_supplicant_8-cb7ecf9c78c96e154fb533510e260a259e5fad28.tar.bz2 android_external_wpa_supplicant_8-cb7ecf9c78c96e154fb533510e260a259e5fad28.zip |
FST: Make FST peer connection check more permissive in hostapd
Modify the FST peer connection check so it won't skip peers without MB
IEs making it more permissive for peers that didn't provide MB IEs
during association request. This can be helpful, e.g., in cases where a
STA's interface connected before it was added to the FST group. This
allows the AP to receive FST Action frames and initiate session with a
STA via STA's interface that doesn't expose MB IEs.
The adjusted FST protocol is still safe, as it protects itself in many
other ways (checking band info and it's accordance to the interfaces,
Setup IDs, connection states of the interfaces involved, etc.)
effectively avoiding all types of invalid situations.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Git-commit: b47d05aa458ed7c7dfbfe09fc2a2af1f2fee7fc7
Git-repo : git://w1.fi/srv/git/hostap.git
CRs-Fixed: 945518
Change-Id: Ie1a94890d55dcd7027947cedd4313eddebe3d487
Diffstat (limited to 'src/fst/fst_group.c')
-rw-r--r-- | src/fst/fst_group.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/fst/fst_group.c b/src/fst/fst_group.c index f2cd3296..e0c055f0 100644 --- a/src/fst/fst_group.c +++ b/src/fst/fst_group.c @@ -219,7 +219,8 @@ fst_group_get_new_iface_by_mbie_and_band_id(struct fst_group *g, fst_mbie_get_peer_addr(mbie); if (peer_addr && - fst_iface_is_connected(iface, peer_addr) && + fst_iface_is_connected(iface, peer_addr, + TRUE) && band_id == fst_iface_get_band_id(iface)) { os_memcpy(iface_peer_addr, peer_addr, ETH_ALEN); |