payload name added to the transport protocol
This commit is contained in:
parent
94af947d1f
commit
0687a6a981
|
|
@ -98,6 +98,7 @@ typedef struct
|
|||
time_t time;
|
||||
int msgType;
|
||||
int payloadType;
|
||||
char payloadName[32];
|
||||
void *payload;
|
||||
unsigned char sha256[32];
|
||||
} parsedData;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include "webguiapp.h"
|
||||
#include "SystemApplication.h"
|
||||
#include "mbedtls/md.h"
|
||||
#include <string.h>
|
||||
|
||||
#define TAG "SysComm"
|
||||
|
||||
|
|
@ -59,6 +60,7 @@ static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
|||
jwObj_string(&jwc, "time", time);
|
||||
jwObj_int(&jwc, "msgtype", DATA_MESSAGE_TYPE_RESPONSE);
|
||||
jwObj_int(&jwc, "payloadtype", MSG->parsedData.payloadType);
|
||||
jwObj_string(&jwc, "payloadname", MSG->parsedData.payloadName);
|
||||
jwObj_object(&jwc, "payload");
|
||||
jwObj_int(&jwc, "applytype", 0);
|
||||
jwObj_object(&jwc, "variables");
|
||||
|
|
@ -73,9 +75,7 @@ static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
|||
|
||||
for (int i = 0; i < result.elements; ++i)
|
||||
{
|
||||
jRead_string(MSG->inputDataBuffer, "{'data'{'payload'{'variables'{*", VarName,
|
||||
VAR_MAX_NAME_LENGTH,
|
||||
&i);
|
||||
jRead_string(MSG->inputDataBuffer, "{'data'{'payload'{'variables'{*", VarName, VAR_MAX_NAME_LENGTH, &i);
|
||||
const char parsevar[] = "{'data'{'payload'{'variables'{'";
|
||||
char expr[sizeof(parsevar) + VAR_MAX_NAME_LENGTH];
|
||||
strcpy(expr, parsevar);
|
||||
|
|
@ -101,7 +101,6 @@ static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
|||
tp = VAR_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{ // Read variables
|
||||
|
|
@ -114,7 +113,6 @@ static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
|||
jwObj_string(&jwc, VarName, VarValue);
|
||||
else
|
||||
jwObj_raw(&jwc, VarName, VarValue);
|
||||
|
||||
}
|
||||
free(VarValue);
|
||||
}
|
||||
|
|
@ -132,8 +130,7 @@ static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
|||
if (datap)
|
||||
{
|
||||
datap += sizeof("\"data\":") - 1;
|
||||
SHA256hmacHash((unsigned char*) datap, strlen(datap), (unsigned char*) "mykey", sizeof("mykey"),
|
||||
MSG->parsedData.sha256);
|
||||
SHA256hmacHash((unsigned char *)datap, strlen(datap), (unsigned char *)"mykey", sizeof("mykey"), MSG->parsedData.sha256);
|
||||
unsigned char sha_print[32 * 2 + 1];
|
||||
BytesToStr(MSG->parsedData.sha256, sha_print, 32);
|
||||
sha_print[32 * 2] = 0x00;
|
||||
|
|
@ -169,7 +166,6 @@ static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
|||
default:
|
||||
return SYS_ERROR_PARSE_APPLYTYPE;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -194,8 +190,7 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
|||
jRead_string(MSG->inputDataBuffer, "{'data'", hashbuf, MSG->inputDataLength, 0);
|
||||
if (strlen(hashbuf) > 0)
|
||||
{
|
||||
SHA256hmacHash((unsigned char*) hashbuf, strlen(hashbuf), (unsigned char*) "mykey", sizeof("mykey"),
|
||||
MSG->parsedData.sha256);
|
||||
SHA256hmacHash((unsigned char *)hashbuf, strlen(hashbuf), (unsigned char *)"mykey", sizeof("mykey"), MSG->parsedData.sha256);
|
||||
unsigned char sha_print[32 * 2 + 1];
|
||||
BytesToStr(MSG->parsedData.sha256, sha_print, 32);
|
||||
sha_print[32 * 2] = 0x00;
|
||||
|
|
@ -210,7 +205,6 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
|||
return SYS_ERROR_PARSE_DATA;
|
||||
}
|
||||
|
||||
|
||||
jRead(MSG->inputDataBuffer, "{'signature'", &result);
|
||||
if (result.elements == 1)
|
||||
{
|
||||
|
|
@ -223,8 +217,6 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
|||
else
|
||||
return SYS_ERROR_PARSE_SIGNATURE;
|
||||
|
||||
|
||||
|
||||
// Extract 'messidx' or throw exception
|
||||
jRead(MSG->inputDataBuffer, "{'data'{'msgid'", &result);
|
||||
if (result.elements == 1)
|
||||
|
|
@ -274,6 +266,14 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
|||
else
|
||||
return SYS_ERROR_PARSE_PAYLOADTYPE;
|
||||
|
||||
jRead(MSG->inputDataBuffer, "{'data'{'payloadname'", &result);
|
||||
if (result.elements == 1)
|
||||
{
|
||||
jRead_string(MSG->inputDataBuffer, "{'data'{'payloadname'", MSG->parsedData.payloadName, 31, 0);
|
||||
}
|
||||
else
|
||||
strcpy(MSG->parsedData.payloadName, "notset");
|
||||
|
||||
sys_error_code err = SYS_ERROR_HANDLER_NOT_SET;
|
||||
switch (MSG->parsedData.payloadType)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user