A small footprint MQTT library
Dependents: STM32F746_iothub_client_sample_mqtt FXOS8700CQ_To_Azure_IoT f767zi_mqtt FXOS8700CQ_To_Azure_IoT ... more
mqtt_message.c@15:ec5a36121959, 2017-02-24 (annotated)
- Committer:
- AzureIoTClient
- Date:
- Fri Feb 24 14:01:11 2017 -0800
- Revision:
- 15:ec5a36121959
- Parent:
- 13:3c202001e4ba
- Child:
- 18:6d13ad04e8a0
1.1.8
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Azure.IoT Build | 0:ef4901974abc | 1 | // Copyright (c) Microsoft. All rights reserved. |
Azure.IoT Build | 0:ef4901974abc | 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. |
Azure.IoT Build | 0:ef4901974abc | 3 | |
Azure.IoT Build | 0:ef4901974abc | 4 | #include <stdlib.h> |
Azure.IoT Build | 0:ef4901974abc | 5 | #include "azure_umqtt_c/mqtt_message.h" |
AzureIoTClient | 15:ec5a36121959 | 6 | #include "azure_c_shared_utility/optimize_size.h" |
Azure.IoT Build | 0:ef4901974abc | 7 | #include "azure_c_shared_utility/gballoc.h" |
Azure.IoT Build | 0:ef4901974abc | 8 | |
Azure.IoT Build | 0:ef4901974abc | 9 | typedef struct MQTT_MESSAGE_TAG |
Azure.IoT Build | 0:ef4901974abc | 10 | { |
Azure.IoT Build | 0:ef4901974abc | 11 | uint16_t packetId; |
Azure.IoT Build | 0:ef4901974abc | 12 | char* topicName; |
Azure.IoT Build | 0:ef4901974abc | 13 | QOS_VALUE qosInfo; |
Azure.IoT Build | 0:ef4901974abc | 14 | APP_PAYLOAD appPayload; |
Azure.IoT Build | 0:ef4901974abc | 15 | bool isDuplicateMsg; |
Azure.IoT Build | 0:ef4901974abc | 16 | bool isMessageRetained; |
Azure.IoT Build | 0:ef4901974abc | 17 | } MQTT_MESSAGE; |
Azure.IoT Build | 0:ef4901974abc | 18 | |
Azure.IoT Build | 0:ef4901974abc | 19 | MQTT_MESSAGE_HANDLE mqttmessage_create(uint16_t packetId, const char* topicName, QOS_VALUE qosValue, const uint8_t* appMsg, size_t appMsgLength) |
Azure.IoT Build | 0:ef4901974abc | 20 | { |
Azure.IoT Build | 0:ef4901974abc | 21 | /* Codes_SRS_MQTTMESSAGE_07_001:[If the parameters topicName is NULL is zero then mqttmessage_create shall return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 22 | MQTT_MESSAGE* result; |
Azure.IoT Build | 0:ef4901974abc | 23 | if (topicName == NULL) |
Azure.IoT Build | 0:ef4901974abc | 24 | { |
Azure.IoT Build | 0:ef4901974abc | 25 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 26 | } |
Azure.IoT Build | 0:ef4901974abc | 27 | else |
Azure.IoT Build | 0:ef4901974abc | 28 | { |
Azure.IoT Build | 0:ef4901974abc | 29 | /* Codes_SRS_MQTTMESSAGE_07_002: [mqttmessage_create shall allocate and copy the topicName and appMsg parameters.] */ |
Azure.IoT Build | 0:ef4901974abc | 30 | result = malloc(sizeof(MQTT_MESSAGE)); |
Azure.IoT Build | 0:ef4901974abc | 31 | if (result != NULL) |
Azure.IoT Build | 0:ef4901974abc | 32 | { |
Azure.IoT Build | 0:ef4901974abc | 33 | if (mallocAndStrcpy_s(&result->topicName, topicName) != 0) |
Azure.IoT Build | 0:ef4901974abc | 34 | { |
Azure.IoT Build | 0:ef4901974abc | 35 | /* Codes_SRS_MQTTMESSAGE_07_003: [If any memory allocation fails mqttmessage_create shall free any allocated memory and return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 36 | free(result); |
Azure.IoT Build | 0:ef4901974abc | 37 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 38 | } |
Azure.IoT Build | 0:ef4901974abc | 39 | else |
Azure.IoT Build | 0:ef4901974abc | 40 | { |
Azure.IoT Build | 0:ef4901974abc | 41 | result->packetId = packetId; |
Azure.IoT Build | 0:ef4901974abc | 42 | result->isDuplicateMsg = false; |
Azure.IoT Build | 0:ef4901974abc | 43 | result->isMessageRetained = false; |
Azure.IoT Build | 0:ef4901974abc | 44 | result->qosInfo = qosValue; |
Azure.IoT Build | 0:ef4901974abc | 45 | |
Azure.IoT Build | 0:ef4901974abc | 46 | /* Codes_SRS_MQTTMESSAGE_07_002: [mqttmessage_create shall allocate and copy the topicName and appMsg parameters.] */ |
Azure.IoT Build | 0:ef4901974abc | 47 | result->appPayload.length = appMsgLength; |
Azure.IoT Build | 0:ef4901974abc | 48 | if (result->appPayload.length > 0) |
Azure.IoT Build | 0:ef4901974abc | 49 | { |
Azure.IoT Build | 0:ef4901974abc | 50 | result->appPayload.message = malloc(appMsgLength); |
Azure.IoT Build | 0:ef4901974abc | 51 | if (result->appPayload.message == NULL) |
Azure.IoT Build | 0:ef4901974abc | 52 | { |
Azure.IoT Build | 0:ef4901974abc | 53 | /* Codes_SRS_MQTTMESSAGE_07_003: [If any memory allocation fails mqttmessage_create shall free any allocated memory and return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 54 | free(result->topicName); |
Azure.IoT Build | 0:ef4901974abc | 55 | free(result); |
Azure.IoT Build | 0:ef4901974abc | 56 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 57 | } |
Azure.IoT Build | 0:ef4901974abc | 58 | else |
Azure.IoT Build | 0:ef4901974abc | 59 | { |
AzureIoTClient | 13:3c202001e4ba | 60 | (void)memcpy(result->appPayload.message, appMsg, appMsgLength); |
Azure.IoT Build | 0:ef4901974abc | 61 | } |
Azure.IoT Build | 0:ef4901974abc | 62 | } |
Azure.IoT Build | 0:ef4901974abc | 63 | else |
Azure.IoT Build | 0:ef4901974abc | 64 | { |
Azure.IoT Build | 0:ef4901974abc | 65 | result->appPayload.message = NULL; |
Azure.IoT Build | 0:ef4901974abc | 66 | } |
Azure.IoT Build | 0:ef4901974abc | 67 | } |
Azure.IoT Build | 0:ef4901974abc | 68 | } |
Azure.IoT Build | 0:ef4901974abc | 69 | } |
Azure.IoT Build | 0:ef4901974abc | 70 | /* Codes_SRS_MQTTMESSAGE_07_004: [If mqttmessage_createMessage succeeds the it shall return a NON-NULL MQTT_MESSAGE_HANDLE value.] */ |
Azure.IoT Build | 0:ef4901974abc | 71 | return result; |
Azure.IoT Build | 0:ef4901974abc | 72 | } |
Azure.IoT Build | 0:ef4901974abc | 73 | |
Azure.IoT Build | 0:ef4901974abc | 74 | void mqttmessage_destroy(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 75 | { |
Azure.IoT Build | 0:ef4901974abc | 76 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 77 | /* Codes_SRS_MQTTMESSAGE_07_005: [If the handle parameter is NULL then mqttmessage_destroyMessage shall do nothing] */ |
Azure.IoT Build | 0:ef4901974abc | 78 | if (msgInfo != NULL) |
Azure.IoT Build | 0:ef4901974abc | 79 | { |
Azure.IoT Build | 0:ef4901974abc | 80 | /* Codes_SRS_MQTTMESSAGE_07_006: [mqttmessage_destroyMessage shall free all resources associated with the MQTT_MESSAGE_HANDLE value] */ |
Azure.IoT Build | 0:ef4901974abc | 81 | free(msgInfo->topicName); |
Azure.IoT Build | 0:ef4901974abc | 82 | if (msgInfo->appPayload.message != NULL) |
Azure.IoT Build | 0:ef4901974abc | 83 | { |
Azure.IoT Build | 0:ef4901974abc | 84 | free(msgInfo->appPayload.message); |
Azure.IoT Build | 0:ef4901974abc | 85 | } |
Azure.IoT Build | 0:ef4901974abc | 86 | free(msgInfo); |
Azure.IoT Build | 0:ef4901974abc | 87 | } |
Azure.IoT Build | 0:ef4901974abc | 88 | } |
Azure.IoT Build | 0:ef4901974abc | 89 | |
Azure.IoT Build | 0:ef4901974abc | 90 | MQTT_MESSAGE_HANDLE mqttmessage_clone(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 91 | { |
Azure.IoT Build | 0:ef4901974abc | 92 | MQTT_MESSAGE_HANDLE result; |
Azure.IoT Build | 0:ef4901974abc | 93 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 94 | { |
Azure.IoT Build | 0:ef4901974abc | 95 | /* Codes_SRS_MQTTMESSAGE_07_007: [If handle parameter is NULL then mqttmessage_clone shall return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 96 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 97 | } |
Azure.IoT Build | 0:ef4901974abc | 98 | else |
Azure.IoT Build | 0:ef4901974abc | 99 | { |
Azure.IoT Build | 0:ef4901974abc | 100 | /* Codes_SRS_MQTTMESSAGE_07_008: [mqttmessage_clone shall create a new MQTT_MESSAGE_HANDLE with data content identical of the handle value.] */ |
Azure.IoT Build | 0:ef4901974abc | 101 | MQTT_MESSAGE* mqtt_message = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 102 | result = mqttmessage_create(mqtt_message->packetId, mqtt_message->topicName, mqtt_message->qosInfo, mqtt_message->appPayload.message, mqtt_message->appPayload.length); |
Azure.IoT Build | 0:ef4901974abc | 103 | if (result != NULL) |
Azure.IoT Build | 0:ef4901974abc | 104 | { |
Azure.IoT Build | 0:ef4901974abc | 105 | (void)mqttmessage_setIsDuplicateMsg(result, mqtt_message->isDuplicateMsg); |
Azure.IoT Build | 0:ef4901974abc | 106 | (void)mqttmessage_setIsRetained(result, mqtt_message->isMessageRetained); |
Azure.IoT Build | 0:ef4901974abc | 107 | } |
Azure.IoT Build | 0:ef4901974abc | 108 | } |
Azure.IoT Build | 0:ef4901974abc | 109 | return result; |
Azure.IoT Build | 0:ef4901974abc | 110 | } |
Azure.IoT Build | 0:ef4901974abc | 111 | |
Azure.IoT Build | 0:ef4901974abc | 112 | uint16_t mqttmessage_getPacketId(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 113 | { |
Azure.IoT Build | 0:ef4901974abc | 114 | uint16_t result; |
Azure.IoT Build | 0:ef4901974abc | 115 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 116 | { |
Azure.IoT Build | 0:ef4901974abc | 117 | /* Codes_SRS_MQTTMESSAGE_07_010: [If handle is NULL then mqttmessage_getPacketId shall return 0.] */ |
Azure.IoT Build | 0:ef4901974abc | 118 | result = 0; |
Azure.IoT Build | 0:ef4901974abc | 119 | } |
Azure.IoT Build | 0:ef4901974abc | 120 | else |
Azure.IoT Build | 0:ef4901974abc | 121 | { |
Azure.IoT Build | 0:ef4901974abc | 122 | /* Codes_SRS_MQTTMESSAGE_07_011: [mqttmessage_getPacketId shall return the packetId value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 123 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 124 | result = msgInfo->packetId; |
Azure.IoT Build | 0:ef4901974abc | 125 | } |
Azure.IoT Build | 0:ef4901974abc | 126 | return result; |
Azure.IoT Build | 0:ef4901974abc | 127 | } |
Azure.IoT Build | 0:ef4901974abc | 128 | |
Azure.IoT Build | 0:ef4901974abc | 129 | const char* mqttmessage_getTopicName(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 130 | { |
Azure.IoT Build | 0:ef4901974abc | 131 | const char* result; |
Azure.IoT Build | 0:ef4901974abc | 132 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 133 | { |
Azure.IoT Build | 0:ef4901974abc | 134 | /* Codes_SRS_MQTTMESSAGE_07_012: [If handle is NULL then mqttmessage_getTopicName shall return a NULL string.] */ |
Azure.IoT Build | 0:ef4901974abc | 135 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 136 | } |
Azure.IoT Build | 0:ef4901974abc | 137 | else |
Azure.IoT Build | 0:ef4901974abc | 138 | { |
Azure.IoT Build | 0:ef4901974abc | 139 | /* Codes_SRS_MQTTMESSAGE_07_013: [mqttmessage_getTopicName shall return the topicName contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 140 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 141 | result = msgInfo->topicName; |
Azure.IoT Build | 0:ef4901974abc | 142 | } |
Azure.IoT Build | 0:ef4901974abc | 143 | return result; |
Azure.IoT Build | 0:ef4901974abc | 144 | } |
Azure.IoT Build | 0:ef4901974abc | 145 | |
Azure.IoT Build | 0:ef4901974abc | 146 | QOS_VALUE mqttmessage_getQosType(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 147 | { |
Azure.IoT Build | 0:ef4901974abc | 148 | QOS_VALUE result; |
Azure.IoT Build | 0:ef4901974abc | 149 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 150 | { |
Azure.IoT Build | 0:ef4901974abc | 151 | /* Codes_SRS_MQTTMESSAGE_07_014: [If handle is NULL then mqttmessage_getQosType shall return the default DELIVER_AT_MOST_ONCE value.] */ |
Azure.IoT Build | 0:ef4901974abc | 152 | result = DELIVER_AT_MOST_ONCE; |
Azure.IoT Build | 0:ef4901974abc | 153 | } |
Azure.IoT Build | 0:ef4901974abc | 154 | else |
Azure.IoT Build | 0:ef4901974abc | 155 | { |
Azure.IoT Build | 0:ef4901974abc | 156 | /* Codes_SRS_MQTTMESSAGE_07_015: [mqttmessage_getQosType shall return the QOS Type value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 157 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 158 | result = msgInfo->qosInfo; |
Azure.IoT Build | 0:ef4901974abc | 159 | } |
Azure.IoT Build | 0:ef4901974abc | 160 | return result; |
Azure.IoT Build | 0:ef4901974abc | 161 | } |
Azure.IoT Build | 0:ef4901974abc | 162 | |
Azure.IoT Build | 0:ef4901974abc | 163 | bool mqttmessage_getIsDuplicateMsg(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 164 | { |
Azure.IoT Build | 0:ef4901974abc | 165 | bool result; |
Azure.IoT Build | 0:ef4901974abc | 166 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 167 | { |
Azure.IoT Build | 0:ef4901974abc | 168 | /* Codes_SRS_MQTTMESSAGE_07_016: [If handle is NULL then mqttmessage_getIsDuplicateMsg shall return false.] */ |
Azure.IoT Build | 0:ef4901974abc | 169 | result = false; |
Azure.IoT Build | 0:ef4901974abc | 170 | } |
Azure.IoT Build | 0:ef4901974abc | 171 | else |
Azure.IoT Build | 0:ef4901974abc | 172 | { |
Azure.IoT Build | 0:ef4901974abc | 173 | /* Codes_SRS_MQTTMESSAGE_07_017: [mqttmessage_getIsDuplicateMsg shall return the isDuplicateMsg value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 174 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 175 | result = msgInfo->isDuplicateMsg; |
Azure.IoT Build | 0:ef4901974abc | 176 | } |
Azure.IoT Build | 0:ef4901974abc | 177 | return result; |
Azure.IoT Build | 0:ef4901974abc | 178 | } |
Azure.IoT Build | 0:ef4901974abc | 179 | |
Azure.IoT Build | 0:ef4901974abc | 180 | bool mqttmessage_getIsRetained(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 181 | { |
Azure.IoT Build | 0:ef4901974abc | 182 | bool result; |
Azure.IoT Build | 0:ef4901974abc | 183 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 184 | { |
Azure.IoT Build | 0:ef4901974abc | 185 | /* Codes_SRS_MQTTMESSAGE_07_018: [If handle is NULL then mqttmessage_getIsRetained shall return false.] */ |
Azure.IoT Build | 0:ef4901974abc | 186 | result = false; |
Azure.IoT Build | 0:ef4901974abc | 187 | } |
Azure.IoT Build | 0:ef4901974abc | 188 | else |
Azure.IoT Build | 0:ef4901974abc | 189 | { |
Azure.IoT Build | 0:ef4901974abc | 190 | /* Codes_SRS_MQTTMESSAGE_07_019: [mqttmessage_getIsRetained shall return the isRetained value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 191 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 192 | result = msgInfo->isMessageRetained; |
Azure.IoT Build | 0:ef4901974abc | 193 | } |
Azure.IoT Build | 0:ef4901974abc | 194 | return result; |
Azure.IoT Build | 0:ef4901974abc | 195 | } |
Azure.IoT Build | 0:ef4901974abc | 196 | |
Azure.IoT Build | 0:ef4901974abc | 197 | int mqttmessage_setIsDuplicateMsg(MQTT_MESSAGE_HANDLE handle, bool duplicateMsg) |
Azure.IoT Build | 0:ef4901974abc | 198 | { |
Azure.IoT Build | 0:ef4901974abc | 199 | int result; |
Azure.IoT Build | 0:ef4901974abc | 200 | /* Codes_SRS_MQTTMESSAGE_07_022: [If handle is NULL then mqttmessage_setIsDuplicateMsg shall return a non-zero value.] */ |
Azure.IoT Build | 0:ef4901974abc | 201 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 202 | { |
AzureIoTClient | 15:ec5a36121959 | 203 | result = __FAILURE__; |
Azure.IoT Build | 0:ef4901974abc | 204 | } |
Azure.IoT Build | 0:ef4901974abc | 205 | else |
Azure.IoT Build | 0:ef4901974abc | 206 | { |
Azure.IoT Build | 0:ef4901974abc | 207 | /* Codes_SRS_MQTTMESSAGE_07_023: [mqttmessage_setIsDuplicateMsg shall store the duplicateMsg value in the MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 208 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 209 | msgInfo->isDuplicateMsg = duplicateMsg; |
Azure.IoT Build | 0:ef4901974abc | 210 | result = 0; |
Azure.IoT Build | 0:ef4901974abc | 211 | } |
Azure.IoT Build | 0:ef4901974abc | 212 | return result; |
Azure.IoT Build | 0:ef4901974abc | 213 | } |
Azure.IoT Build | 0:ef4901974abc | 214 | |
Azure.IoT Build | 0:ef4901974abc | 215 | int mqttmessage_setIsRetained(MQTT_MESSAGE_HANDLE handle, bool retainMsg) |
Azure.IoT Build | 0:ef4901974abc | 216 | { |
Azure.IoT Build | 0:ef4901974abc | 217 | int result; |
Azure.IoT Build | 0:ef4901974abc | 218 | /* Codes_SRS_MQTTMESSAGE_07_024: [If handle is NULL then mqttmessage_setIsRetained shall return a non-zero value.] */ |
Azure.IoT Build | 0:ef4901974abc | 219 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 220 | { |
AzureIoTClient | 15:ec5a36121959 | 221 | result = __FAILURE__; |
Azure.IoT Build | 0:ef4901974abc | 222 | } |
Azure.IoT Build | 0:ef4901974abc | 223 | else |
Azure.IoT Build | 0:ef4901974abc | 224 | { |
Azure.IoT Build | 0:ef4901974abc | 225 | /* Codes_SRS_MQTTMESSAGE_07_025: [mqttmessage_setIsRetained shall store the retainMsg value in the MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 226 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 227 | msgInfo->isMessageRetained = retainMsg; |
Azure.IoT Build | 0:ef4901974abc | 228 | result = 0; |
Azure.IoT Build | 0:ef4901974abc | 229 | } |
Azure.IoT Build | 0:ef4901974abc | 230 | return result; |
Azure.IoT Build | 0:ef4901974abc | 231 | } |
Azure.IoT Build | 0:ef4901974abc | 232 | |
Azure.IoT Build | 0:ef4901974abc | 233 | const APP_PAYLOAD* mqttmessage_getApplicationMsg(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 234 | { |
Azure.IoT Build | 0:ef4901974abc | 235 | const APP_PAYLOAD* result; |
Azure.IoT Build | 0:ef4901974abc | 236 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 237 | { |
Azure.IoT Build | 0:ef4901974abc | 238 | /* Codes_SRS_MQTTMESSAGE_07_020: [If handle is NULL or if msgLen is 0 then mqttmessage_getApplicationMsg shall return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 239 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 240 | } |
Azure.IoT Build | 0:ef4901974abc | 241 | else |
Azure.IoT Build | 0:ef4901974abc | 242 | { |
Azure.IoT Build | 0:ef4901974abc | 243 | /* Codes_SRS_MQTTMESSAGE_07_021: [mqttmessage_getApplicationMsg shall return the applicationMsg value contained in MQTT_MESSAGE_HANDLE handle and the length of the appMsg in the msgLen parameter.] */ |
Azure.IoT Build | 0:ef4901974abc | 244 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 245 | result = &msgInfo->appPayload; |
Azure.IoT Build | 0:ef4901974abc | 246 | } |
Azure.IoT Build | 0:ef4901974abc | 247 | return result; |
Azure.IoT Build | 0:ef4901974abc | 248 | } |