|
|
|
@ -84,27 +84,29 @@ static char *properties_to_json(const mosquitto_property *properties)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case MQTT_PROP_CORRELATION_DATA:
|
|
|
|
|
/* bin */
|
|
|
|
|
void *binval = NULL;
|
|
|
|
|
mosquitto_property_read_binary(properties, propid, &binval, &len, false);
|
|
|
|
|
char *hexval = malloc(2*(size_t)len + 1);
|
|
|
|
|
if(!hexval){
|
|
|
|
|
{
|
|
|
|
|
/* bin */
|
|
|
|
|
void *binval = NULL;
|
|
|
|
|
mosquitto_property_read_binary(properties, propid, &binval, &len, false);
|
|
|
|
|
char *hexval = malloc(2*(size_t)len + 1);
|
|
|
|
|
if(!hexval){
|
|
|
|
|
free(binval);
|
|
|
|
|
cJSON_Delete(array);
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
for(int i=0; i<len; i++){
|
|
|
|
|
sprintf(&hexval[i*2], "%02X", ((uint8_t *)binval)[i]);
|
|
|
|
|
}
|
|
|
|
|
hexval[2*len] = '\0';
|
|
|
|
|
free(binval);
|
|
|
|
|
cJSON_Delete(array);
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
for(int i=0; i<len; i++){
|
|
|
|
|
sprintf(&hexval[i*2], "%02X", ((uint8_t *)binval)[i]);
|
|
|
|
|
}
|
|
|
|
|
hexval[2*len] = '\0';
|
|
|
|
|
free(binval);
|
|
|
|
|
|
|
|
|
|
if(cJSON_AddStringToObject(obj, "value", hexval) == NULL){
|
|
|
|
|
if(cJSON_AddStringToObject(obj, "value", hexval) == NULL){
|
|
|
|
|
free(hexval);
|
|
|
|
|
cJSON_Delete(array);
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
free(hexval);
|
|
|
|
|
cJSON_Delete(array);
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
free(hexval);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case MQTT_PROP_USER_PROPERTY:
|
|
|
|
|