}
+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)
{
struct wps_er_sta *prev, *sta;
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");
- tmp = sta->ap->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_unlink(sta);
wps_er_sta_free(sta);
}