Parcourir la source

WPS ER: Move STA entry unlinking into a separate function

Jouni Malinen il y a 15 ans
Parent
commit
6a1e492a81
1 fichiers modifiés avec 22 ajouts et 15 suppressions
  1. 22 15
      src/wps/wps_er.c

+ 22 - 15
src/wps/wps_er.c

@@ -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)
 {
 	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)
 {
-	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);
 }