Parcourir la 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 il y a 15 ans
Parent
commit
04f5d74077
1 fichiers modifiés avec 11 ajouts et 1 suppressions
  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;