From: Jouni Malinen Date: Fri, 12 Feb 2010 10:38:14 +0000 (+0200) Subject: WPS: Fix AP operation with internal Registrar when ER is also active X-Git-Tag: hostap_0_7_2~203 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e0b3b3cb77d66e54cded20cc106719c60ad96509;p=thirdparty%2Fhostap.git 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. --- diff --git a/src/wps/wps_i.h b/src/wps/wps_i.h index e036176d7..e3a51412b 100644 --- a/src/wps/wps_i.h +++ b/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; diff --git a/src/wps/wps_registrar.c b/src/wps/wps_registrar.c index db20c7da0..30283fe7f 100644 --- a/src/wps/wps_registrar.c +++ b/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);