WPS: Fix OpCode when proxying WSC_ACK or WSC_NACK from ER
authorJouni Malinen <j@w1.fi>
Fri, 13 Nov 2009 20:29:31 +0000 (22:29 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 13 Nov 2009 20:29:31 +0000 (22:29 +0200)
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.

src/wps/wps_registrar.c

index d8053d4..37a506c 100644 (file)
@@ -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;