size_t frame_len)
{
struct fst_session *s;
- const struct fst_setup_req *req =
- (const struct fst_setup_req *) &mgmt->u.action.u.fst_action;
+ const struct fst_setup_req *req;
struct fst_iface *new_iface = NULL;
struct fst_group *g;
u8 new_iface_peer_addr[ETH_ALEN];
return;
}
plen = frame_len - IEEE80211_HDRLEN - 1;
+ req = (const struct fst_setup_req *)
+ (((const u8 *) mgmt) + IEEE80211_HDRLEN + 1);
if (req->stie.new_band_id == req->stie.old_band_id) {
fst_printf_iface(iface, MSG_WARNING,
const struct ieee80211_mgmt *mgmt,
size_t frame_len)
{
- const struct fst_setup_res *res =
- (const struct fst_setup_res *) &mgmt->u.action.u.fst_action;
+ const struct fst_setup_res *res;
size_t plen = frame_len - IEEE80211_HDRLEN - 1;
enum hostapd_hw_mode hw_mode;
u8 channel;
"Too short FST Response dropped");
return;
}
+ res = (const struct fst_setup_res *)
+ (((const u8 *) mgmt) + IEEE80211_HDRLEN + 1);
if (res->dialog_token != s->data.pending_setup_req_dlgt) {
fst_printf_session(s, MSG_WARNING,
const struct ieee80211_mgmt *mgmt,
size_t frame_len)
{
- const struct fst_tear_down *td =
- (const struct fst_tear_down *) &mgmt->u.action.u.fst_action;
+ const struct fst_tear_down *td;
size_t plen = frame_len - IEEE80211_HDRLEN - 1;
union fst_session_state_switch_extra evext = {
.to_initial = {
"Too short FST Tear Down dropped");
return;
}
+ td = (const struct fst_tear_down *)
+ (((const u8 *) mgmt) + IEEE80211_HDRLEN + 1);
if (le_to_host32(td->fsts_id) != s->data.fsts_id) {
fst_printf_siface(s, iface, MSG_WARNING,
const struct ieee80211_mgmt *mgmt,
size_t frame_len)
{
- const struct fst_ack_req *req =
- (const struct fst_ack_req *) &mgmt->u.action.u.fst_action;
+ const struct fst_ack_req *req;
size_t plen = frame_len - IEEE80211_HDRLEN - 1;
struct fst_ack_res res;
union fst_session_state_switch_extra evext = {
"Too short FST Ack Request dropped");
return;
}
+ req = (const struct fst_ack_req *)
+ (((const u8 *) mgmt) + IEEE80211_HDRLEN + 1);
if (le_to_host32(req->fsts_id) != s->data.fsts_id) {
fst_printf_siface(s, iface, MSG_WARNING,
const struct ieee80211_mgmt *mgmt,
size_t frame_len)
{
- const struct fst_ack_res *res =
- (const struct fst_ack_res *) &mgmt->u.action.u.fst_action;
+ const struct fst_ack_res *res;
size_t plen = frame_len - IEEE80211_HDRLEN - 1;
union fst_session_state_switch_extra evext = {
.to_initial = {
"Too short FST Ack Response dropped");
return;
}
+ res = (const struct fst_ack_res *)
+ (((const u8 *) mgmt) + IEEE80211_HDRLEN + 1);
if (le_to_host32(res->fsts_id) != s->data.fsts_id) {
fst_printf_siface(s, iface, MSG_ERROR,