Browse Source

WPS ER: Deinitialize protocol instance with STA after completion

In addition, remove the WPS ER Enrollee entry 10 seconds after
successful completion of the protocol run.
Jouni Malinen 15 years ago
parent
commit
11ff95783e
1 changed files with 12 additions and 0 deletions
  1. 12 0
      src/wps/wps_er.c

+ 12 - 0
src/wps/wps_er.c

@@ -832,6 +832,18 @@ static void wps_er_sta_process(struct wps_er_sta *sta, struct wpabuf *msg,
 		struct wpabuf *next = wps_get_msg(sta->wps, &op_code);
 		if (next)
 			wps_er_sta_send_msg(sta, next);
+	} else {
+		wpa_printf(MSG_DEBUG, "WPS ER: Protocol run %s with the "
+			   "enrollee (res=%d)",
+			   res == WPS_DONE ? "succeeded" : "failed", res);
+		wps_deinit(sta->wps);
+		sta->wps = NULL;
+		if (res == WPS_DONE) {
+			/* Remove the STA entry after short timeout */
+			eloop_cancel_timeout(wps_er_sta_timeout, sta, NULL);
+			eloop_register_timeout(10, 0, wps_er_sta_timeout, sta,
+					       NULL);
+		}
 	}
 }