Browse Source

WPS: Fix OpCode when proxying WSC_ACK or WSC_NACK from ER

Previously, WSC_MSG was hardcoded for every message from ER, but
this needs to be changed based on message type to send a valid
message to the Enrollee via EAP transport.
Jouni Malinen 15 years ago
parent
commit
04f5d74077
1 changed files with 11 additions and 1 deletions
  1. 11 1
      src/wps/wps_registrar.c

+ 11 - 1
src/wps/wps_registrar.c

@@ -1563,8 +1563,18 @@ struct wpabuf * wps_registrar_get_msg(struct wps_data *wps,
 			else
 				wps->wps->upnp_msgs = NULL;
 			msg = p->msg;
+			switch (p->type) {
+			case WPS_WSC_ACK:
+				*op_code = WSC_ACK;
+				break;
+			case WPS_WSC_NACK:
+				*op_code = WSC_NACK;
+				break;
+			default:
+				*op_code = WSC_MSG;
+				break;
+			}
 			os_free(p);
-			*op_code = WSC_MSG;
 			if (wps->ext_reg == 0)
 				wps->ext_reg = 1;
 			return msg;