Show BSS entry age (seconds since last update)

The BSS ctrl_iface command can sow the age of a BSS table entry to
make it easier for external programs to figure out whether an entry
is still current depending on the use case.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2012-02-08 12:07:54 +02:00 committed by Jouni Malinen
parent 59c8500f18
commit a91e268c5e

View file

@ -2193,6 +2193,7 @@ static int wpa_supplicant_ctrl_iface_bss(struct wpa_supplicant *wpa_s,
int ret; int ret;
char *pos, *end; char *pos, *end;
const u8 *ie, *ie2; const u8 *ie, *ie2;
struct os_time now;
if (os_strcmp(cmd, "FIRST") == 0) if (os_strcmp(cmd, "FIRST") == 0)
bss = dl_list_first(&wpa_s->bss, struct wpa_bss, list); bss = dl_list_first(&wpa_s->bss, struct wpa_bss, list);
@ -2235,6 +2236,7 @@ static int wpa_supplicant_ctrl_iface_bss(struct wpa_supplicant *wpa_s,
if (bss == NULL) if (bss == NULL)
return 0; return 0;
os_get_time(&now);
pos = buf; pos = buf;
end = buf + buflen; end = buf + buflen;
ret = os_snprintf(pos, end - pos, ret = os_snprintf(pos, end - pos,
@ -2247,11 +2249,13 @@ static int wpa_supplicant_ctrl_iface_bss(struct wpa_supplicant *wpa_s,
"noise=%d\n" "noise=%d\n"
"level=%d\n" "level=%d\n"
"tsf=%016llu\n" "tsf=%016llu\n"
"age=%d\n"
"ie=", "ie=",
bss->id, bss->id,
MAC2STR(bss->bssid), bss->freq, bss->beacon_int, MAC2STR(bss->bssid), bss->freq, bss->beacon_int,
bss->caps, bss->qual, bss->noise, bss->level, bss->caps, bss->qual, bss->noise, bss->level,
(unsigned long long) bss->tsf); (unsigned long long) bss->tsf,
(int) (now.sec - bss->last_update.sec));
if (ret < 0 || ret >= end - pos) if (ret < 0 || ret >= end - pos)
return pos - buf; return pos - buf;
pos += ret; pos += ret;