wlantest: Move bss_update() into bss.c
This commit is contained in:
parent
d30edf54b8
commit
b50111fbb2
3 changed files with 56 additions and 53 deletions
|
@ -15,6 +15,7 @@
|
|||
#include "utils/includes.h"
|
||||
|
||||
#include "utils/common.h"
|
||||
#include "common/ieee802_11_common.h"
|
||||
#include "wlantest.h"
|
||||
|
||||
|
||||
|
@ -50,3 +51,55 @@ void bss_deinit(struct wlantest_bss *bss)
|
|||
dl_list_del(&bss->list);
|
||||
os_free(bss);
|
||||
}
|
||||
|
||||
|
||||
void bss_update(struct wlantest_bss *bss, struct ieee802_11_elems *elems)
|
||||
{
|
||||
if (elems->ssid == NULL || elems->ssid_len > 32) {
|
||||
wpa_printf(MSG_INFO, "Invalid or missing SSID in a Beacon "
|
||||
"frame for " MACSTR, MAC2STR(bss->bssid));
|
||||
bss->parse_error_reported = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
os_memcpy(bss->ssid, elems->ssid, elems->ssid_len);
|
||||
bss->ssid_len = elems->ssid_len;
|
||||
|
||||
if (elems->rsn_ie == NULL) {
|
||||
if (bss->rsnie[0]) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - RSN IE removed",
|
||||
MAC2STR(bss->bssid));
|
||||
bss->rsnie[0] = 0;
|
||||
}
|
||||
} else {
|
||||
if (bss->rsnie[0] == 0 ||
|
||||
os_memcmp(bss->rsnie, elems->rsn_ie - 2,
|
||||
elems->rsn_ie_len + 2) != 0) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - RSN IE "
|
||||
"stored", MAC2STR(bss->bssid));
|
||||
wpa_hexdump(MSG_DEBUG, "RSN IE", elems->rsn_ie - 2,
|
||||
elems->rsn_ie_len + 2);
|
||||
}
|
||||
os_memcpy(bss->rsnie, elems->rsn_ie - 2,
|
||||
elems->rsn_ie_len + 2);
|
||||
}
|
||||
|
||||
if (elems->wpa_ie == NULL) {
|
||||
if (bss->wpaie[0]) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - WPA IE removed",
|
||||
MAC2STR(bss->bssid));
|
||||
bss->wpaie[0] = 0;
|
||||
}
|
||||
} else {
|
||||
if (bss->wpaie[0] == 0 ||
|
||||
os_memcmp(bss->wpaie, elems->wpa_ie - 2,
|
||||
elems->wpa_ie_len + 2) != 0) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - WPA IE "
|
||||
"stored", MAC2STR(bss->bssid));
|
||||
wpa_hexdump(MSG_DEBUG, "WPA IE", elems->wpa_ie - 2,
|
||||
elems->wpa_ie_len + 2);
|
||||
}
|
||||
os_memcpy(bss->wpaie, elems->wpa_ie - 2,
|
||||
elems->wpa_ie_len + 2);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,59 +54,6 @@ static const char * mgmt_stype(u16 stype)
|
|||
}
|
||||
|
||||
|
||||
static void bss_update(struct wlantest_bss *bss,
|
||||
struct ieee802_11_elems *elems)
|
||||
{
|
||||
if (elems->ssid == NULL || elems->ssid_len > 32) {
|
||||
wpa_printf(MSG_INFO, "Invalid or missing SSID in a Beacon "
|
||||
"frame for " MACSTR, MAC2STR(bss->bssid));
|
||||
bss->parse_error_reported = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
os_memcpy(bss->ssid, elems->ssid, elems->ssid_len);
|
||||
bss->ssid_len = elems->ssid_len;
|
||||
|
||||
if (elems->rsn_ie == NULL) {
|
||||
if (bss->rsnie[0]) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - RSN IE removed",
|
||||
MAC2STR(bss->bssid));
|
||||
bss->rsnie[0] = 0;
|
||||
}
|
||||
} else {
|
||||
if (bss->rsnie[0] == 0 ||
|
||||
os_memcmp(bss->rsnie, elems->rsn_ie - 2,
|
||||
elems->rsn_ie_len + 2) != 0) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - RSN IE "
|
||||
"stored", MAC2STR(bss->bssid));
|
||||
wpa_hexdump(MSG_DEBUG, "RSN IE", elems->rsn_ie - 2,
|
||||
elems->rsn_ie_len + 2);
|
||||
}
|
||||
os_memcpy(bss->rsnie, elems->rsn_ie - 2,
|
||||
elems->rsn_ie_len + 2);
|
||||
}
|
||||
|
||||
if (elems->wpa_ie == NULL) {
|
||||
if (bss->wpaie[0]) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - WPA IE removed",
|
||||
MAC2STR(bss->bssid));
|
||||
bss->wpaie[0] = 0;
|
||||
}
|
||||
} else {
|
||||
if (bss->wpaie[0] == 0 ||
|
||||
os_memcmp(bss->wpaie, elems->wpa_ie - 2,
|
||||
elems->wpa_ie_len + 2) != 0) {
|
||||
wpa_printf(MSG_INFO, "BSS " MACSTR " - WPA IE "
|
||||
"stored", MAC2STR(bss->bssid));
|
||||
wpa_hexdump(MSG_DEBUG, "WPA IE", elems->wpa_ie - 2,
|
||||
elems->wpa_ie_len + 2);
|
||||
}
|
||||
os_memcpy(bss->wpaie, elems->wpa_ie - 2,
|
||||
elems->wpa_ie_len + 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void rx_mgmt_beacon(struct wlantest *wt, const u8 *data, size_t len)
|
||||
{
|
||||
const struct ieee80211_mgmt *mgmt;
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
#include "utils/list.h"
|
||||
|
||||
struct ieee802_11_elems;
|
||||
|
||||
|
||||
struct wlantest_sta {
|
||||
struct dl_list list;
|
||||
|
@ -61,6 +63,7 @@ void monitor_deinit(struct wlantest *wt);
|
|||
|
||||
struct wlantest_bss * bss_get(struct wlantest *wt, const u8 *bssid);
|
||||
void bss_deinit(struct wlantest_bss *bss);
|
||||
void bss_update(struct wlantest_bss *bss, struct ieee802_11_elems *elems);
|
||||
|
||||
struct wlantest_sta * sta_get(struct wlantest_bss *bss, const u8 *addr);
|
||||
void sta_deinit(struct wlantest_sta *sta);
|
||||
|
|
Loading…
Reference in a new issue