WNM: Do not store coloc_intf_elems
The elements are (currently) not used except for sending an immediate response similar to COLOC_INTF_REPORT with the main difference being that the dialog token is included. Do not store the elements. It easy enough to re-add this should the implementation improve. And this fixes the fact that the variable is cleared at odd times as wnm_deallocate_memory() is used specifically to clear the neighbor report list of a BTM request. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
This commit is contained in:
parent
033adbf833
commit
261f7f9e51
2 changed files with 6 additions and 8 deletions
|
@ -430,9 +430,6 @@ void wnm_deallocate_memory(struct wpa_supplicant *wpa_s)
|
||||||
wpa_s->wnm_num_neighbor_report = 0;
|
wpa_s->wnm_num_neighbor_report = 0;
|
||||||
os_free(wpa_s->wnm_neighbor_report_elements);
|
os_free(wpa_s->wnm_neighbor_report_elements);
|
||||||
wpa_s->wnm_neighbor_report_elements = NULL;
|
wpa_s->wnm_neighbor_report_elements = NULL;
|
||||||
|
|
||||||
wpabuf_free(wpa_s->coloc_intf_elems);
|
|
||||||
wpa_s->coloc_intf_elems = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2009,14 +2006,14 @@ int wnm_send_coloc_intf_report(struct wpa_supplicant *wpa_s, u8 dialog_token,
|
||||||
void wnm_set_coloc_intf_elems(struct wpa_supplicant *wpa_s,
|
void wnm_set_coloc_intf_elems(struct wpa_supplicant *wpa_s,
|
||||||
struct wpabuf *elems)
|
struct wpabuf *elems)
|
||||||
{
|
{
|
||||||
wpabuf_free(wpa_s->coloc_intf_elems);
|
|
||||||
if (elems && wpabuf_len(elems) == 0) {
|
if (elems && wpabuf_len(elems) == 0) {
|
||||||
wpabuf_free(elems);
|
wpabuf_free(elems);
|
||||||
elems = NULL;
|
elems = NULL;
|
||||||
}
|
}
|
||||||
wpa_s->coloc_intf_elems = elems;
|
|
||||||
|
|
||||||
if (wpa_s->conf->coloc_intf_reporting && wpa_s->coloc_intf_elems &&
|
/* NOTE: The elements are not stored as they are only send out once */
|
||||||
|
|
||||||
|
if (wpa_s->conf->coloc_intf_reporting && elems &&
|
||||||
wpa_s->coloc_intf_dialog_token &&
|
wpa_s->coloc_intf_dialog_token &&
|
||||||
(wpa_s->coloc_intf_auto_report == 1 ||
|
(wpa_s->coloc_intf_auto_report == 1 ||
|
||||||
wpa_s->coloc_intf_auto_report == 3)) {
|
wpa_s->coloc_intf_auto_report == 3)) {
|
||||||
|
@ -2025,8 +2022,10 @@ void wnm_set_coloc_intf_elems(struct wpa_supplicant *wpa_s,
|
||||||
*/
|
*/
|
||||||
wnm_send_coloc_intf_report(wpa_s,
|
wnm_send_coloc_intf_report(wpa_s,
|
||||||
wpa_s->coloc_intf_dialog_token,
|
wpa_s->coloc_intf_dialog_token,
|
||||||
wpa_s->coloc_intf_elems);
|
elems);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wpabuf_free(elems);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1313,7 +1313,6 @@ struct wpa_supplicant {
|
||||||
struct wpa_bss *wnm_target_bss;
|
struct wpa_bss *wnm_target_bss;
|
||||||
enum bss_trans_mgmt_status_code bss_tm_status;
|
enum bss_trans_mgmt_status_code bss_tm_status;
|
||||||
bool bss_trans_mgmt_in_progress;
|
bool bss_trans_mgmt_in_progress;
|
||||||
struct wpabuf *coloc_intf_elems;
|
|
||||||
u8 coloc_intf_dialog_token;
|
u8 coloc_intf_dialog_token;
|
||||||
u8 coloc_intf_auto_report;
|
u8 coloc_intf_auto_report;
|
||||||
u8 coloc_intf_timeout;
|
u8 coloc_intf_timeout;
|
||||||
|
|
Loading…
Add table
Reference in a new issue