WPS ER: Move STA entry unlinking into a separate function
This commit is contained in:
parent
7c04d5ec6c
commit
6a1e492a81
1 changed files with 22 additions and 15 deletions
|
@ -159,6 +159,26 @@ static void wps_er_sta_free(struct wps_er_sta *sta)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void wps_er_sta_unlink(struct wps_er_sta *sta)
|
||||||
|
{
|
||||||
|
struct wps_er_sta *prev, *tmp;
|
||||||
|
struct wps_er_ap *ap = sta->ap;
|
||||||
|
tmp = ap->sta;
|
||||||
|
prev = NULL;
|
||||||
|
while (tmp) {
|
||||||
|
if (tmp == sta) {
|
||||||
|
if (prev)
|
||||||
|
prev->next = sta->next;
|
||||||
|
else
|
||||||
|
ap->sta = sta->next;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
prev = tmp;
|
||||||
|
tmp = tmp->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void wps_er_sta_remove_all(struct wps_er_ap *ap)
|
static void wps_er_sta_remove_all(struct wps_er_ap *ap)
|
||||||
{
|
{
|
||||||
struct wps_er_sta *prev, *sta;
|
struct wps_er_sta *prev, *sta;
|
||||||
|
@ -695,22 +715,9 @@ static void wps_er_http_resp_ok(struct http_request *req)
|
||||||
|
|
||||||
static void wps_er_sta_timeout(void *eloop_data, void *user_ctx)
|
static void wps_er_sta_timeout(void *eloop_data, void *user_ctx)
|
||||||
{
|
{
|
||||||
struct wps_er_sta *prev, *tmp, *sta = eloop_data;
|
struct wps_er_sta *sta = eloop_data;
|
||||||
wpa_printf(MSG_DEBUG, "WPS ER: STA entry timed out");
|
wpa_printf(MSG_DEBUG, "WPS ER: STA entry timed out");
|
||||||
tmp = sta->ap->sta;
|
wps_er_sta_unlink(sta);
|
||||||
prev = NULL;
|
|
||||||
while (tmp) {
|
|
||||||
if (tmp == sta)
|
|
||||||
break;
|
|
||||||
prev = tmp;
|
|
||||||
tmp = tmp->next;
|
|
||||||
}
|
|
||||||
if (tmp) {
|
|
||||||
if (prev)
|
|
||||||
prev->next = sta->next;
|
|
||||||
else
|
|
||||||
sta->ap->sta = sta->next;
|
|
||||||
}
|
|
||||||
wps_er_sta_free(sta);
|
wps_er_sta_free(sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue