in src/mqtt_codec.c [163:194]
static int addListItemsToSubscribePacket(BUFFER_HANDLE ctrlPacket, SUBSCRIBE_PAYLOAD* payloadList, size_t payloadCount, STRING_HANDLE trace_log)
{
int result = 0;
size_t index = 0;
for (index = 0; index < payloadCount && result == 0; index++)
{
// Add the Payload
size_t offsetLen = BUFFER_length(ctrlPacket);
size_t topicLen = strlen(payloadList[index].subscribeTopic);
if (topicLen > USHRT_MAX)
{
result = MU_FAILURE;
}
else if (BUFFER_enlarge(ctrlPacket, topicLen + 2 + 1) != 0)
{
result = MU_FAILURE;
}
else
{
uint8_t* iterator = BUFFER_u_char(ctrlPacket);
iterator += offsetLen;
byteutil_writeUTF(&iterator, payloadList[index].subscribeTopic, (uint16_t)topicLen);
*iterator = payloadList[index].qosReturn;
if (trace_log != NULL)
{
STRING_sprintf(trace_log, " | TOPIC_NAME: %s | QOS: %d", payloadList[index].subscribeTopic, (int)payloadList[index].qosReturn);
}
}
}
return result;
}