Browse Source

WPS: Fix AP operation with internal Registrar when ER is also active

Ignore the pending WPS message from ER (PutWLANReseponse action) if the
internal Registrar has already sent out M2.
Jouni Malinen 15 years ago
parent
commit
e0b3b3cb77
2 changed files with 3 additions and 1 deletions
  1. 1 0
      src/wps/wps_i.h
  2. 2 1
      src/wps/wps_registrar.c

+ 1 - 0
src/wps/wps_i.h

@@ -104,6 +104,7 @@ struct wps_data {
 	u16 config_error;
 
 	int ext_reg;
+	int int_reg;
 
 	struct wps_credential *new_ap_settings;
 

+ 2 - 1
src/wps/wps_registrar.c

@@ -1357,6 +1357,7 @@ static struct wpabuf * wps_build_m2(struct wps_data *wps)
 		return NULL;
 	}
 
+	wps->int_reg = 1;
 	wps->state = RECV_M3;
 	return msg;
 }
@@ -1557,7 +1558,7 @@ struct wpabuf * wps_registrar_get_msg(struct wps_data *wps,
 	struct wpabuf *msg;
 
 #ifdef CONFIG_WPS_UPNP
-	if (wps->wps->wps_upnp) {
+	if (!wps->int_reg && wps->wps->wps_upnp) {
 		struct upnp_pending_message *p, *prev = NULL;
 		if (wps->ext_reg > 1)
 			wps_registrar_free_pending_m2(wps->wps);