Microsoft Azure IoTHub client MQTT transport
Dependents: STM32F746_iothub_client_sample_mqtt FXOS8700CQ_To_Azure_IoT f767zi_mqtt FXOS8700CQ_To_Azure_IoT ... more
Diff: iothubtransportmqtt.c
- Revision:
- 5:73603e7a6542
- Parent:
- 4:e472f5ce3473
- Child:
- 6:16875b609849
--- a/iothubtransportmqtt.c Fri Jun 17 17:02:32 2016 -0700 +++ b/iothubtransportmqtt.c Fri Jul 01 10:42:25 2016 -0700 @@ -7,7 +7,7 @@ #endif #include "azure_c_shared_utility/gballoc.h" -#include "azure_c_shared_utility/iot_logging.h" +#include "azure_c_shared_utility/xlogging.h" #include "azure_c_shared_utility/strings.h" #include "azure_c_shared_utility/doublylinkedlist.h" #include "azure_c_shared_utility/crt_abstractions.h" @@ -110,25 +110,12 @@ DLIST_ENTRY entry; } MQTT_MESSAGE_DETAILS_LIST, *PMQTT_MESSAGE_DETAILS_LIST; -static void defaultPrintLogFunction(unsigned int options, char* format, ...) -{ - va_list args; - va_start(args, format); - (void)vprintf(format, args); - va_end(args); - - if (options & LOG_LINE) - { - (void)printf("\r\n"); - } -} - -static void sendMsgComplete(IOTHUB_MESSAGE_LIST* iothubMsgList, PMQTTTRANSPORT_HANDLE_DATA transportState, IOTHUB_BATCHSTATE_RESULT batchResult) +static void sendMsgComplete(IOTHUB_MESSAGE_LIST* iothubMsgList, PMQTTTRANSPORT_HANDLE_DATA transportState, IOTHUB_CLIENT_CONFIRMATION_RESULT confirmResult) { DLIST_ENTRY messageCompleted; DList_InitializeListHead(&messageCompleted); DList_InsertTailList(&messageCompleted, &(iothubMsgList->entry)); - IoTHubClient_LL_SendComplete(transportState->llClientHandle, &messageCompleted, batchResult); + IoTHubClient_LL_SendComplete(transportState->llClientHandle, &messageCompleted, confirmResult); } static STRING_HANDLE addPropertiesTouMqttMessage(IOTHUB_MESSAGE_HANDLE iothub_message_handle, const char* eventTopic) @@ -367,7 +354,7 @@ if (puback->packetId == mqttMsgEntry->msgPacketId) { (void)DList_RemoveEntryList(currentListEntry); //First remove the item from Waiting for Ack List. - sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportData, IOTHUB_BATCHSTATE_SUCCESS); + sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportData, IOTHUB_CLIENT_CONFIRMATION_OK); free(mqttMsgEntry); } currentListEntry = saveListEntry.Flink; @@ -446,7 +433,7 @@ { TLSIO_CONFIG tls_io_config = { fqdn, port }; const IO_INTERFACE_DESCRIPTION* io_interface_description = platform_get_default_tlsio(); - return (void*)xio_create(io_interface_description, &tls_io_config, NULL/*defaultPrintLogFunction*/); + return (void*)xio_create(io_interface_description, &tls_io_config); } static int SubscribeToMqttProtocol(PMQTTTRANSPORT_HANDLE_DATA transportState) @@ -653,8 +640,6 @@ if (mqtt_client_connect(transportState->mqttClient, transportState->xioTransport, &options) != 0) { LogError("failure connecting to address %s:%d.", STRING_c_str(transportState->hostAddress), transportState->portNum); - xio_destroy(transportState->xioTransport); - transportState->xioTransport = NULL; result = __LINE__; } else @@ -816,7 +801,7 @@ } else { - state->mqttClient = mqtt_client_init(MqttRecvCallback, MqttOpCompleteCallback, state, defaultPrintLogFunction); + state->mqttClient = mqtt_client_init(MqttRecvCallback, MqttOpCompleteCallback, state); if (state->mqttClient == NULL) { STRING_delete(state->mqttEventTopic); @@ -982,7 +967,7 @@ { PDLIST_ENTRY currentEntry = DList_RemoveHeadList(&transportState->waitingForAck); MQTT_MESSAGE_DETAILS_LIST* mqttMsgEntry = containingRecord(currentEntry, MQTT_MESSAGE_DETAILS_LIST, entry); - sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportState, IOTHUB_BATCHSTATE_FAILED); + sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportState, IOTHUB_CLIENT_CONFIRMATION_BECAUSE_DESTROY); free(mqttMsgEntry); } @@ -1086,7 +1071,7 @@ if (mqttMsgEntry->retryCount >= MAX_SEND_RECOUNT_LIMIT) { (void)DList_RemoveEntryList(currentListEntry); - sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportState, IOTHUB_BATCHSTATE_FAILED); + sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportState, IOTHUB_CLIENT_CONFIRMATION_MESSAGE_TIMEOUT); free(mqttMsgEntry); } else @@ -1102,7 +1087,7 @@ if (publishMqttMessage(transportState, mqttMsgEntry, messagePayload, messageLength) != 0) { (void)DList_RemoveEntryList(currentListEntry); - sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportState, IOTHUB_BATCHSTATE_FAILED); + sendMsgComplete(mqttMsgEntry->iotHubMessageEntry, transportState, IOTHUB_CLIENT_CONFIRMATION_ERROR); free(mqttMsgEntry); } } @@ -1143,7 +1128,7 @@ if (publishMqttMessage(transportState, mqttMsgEntry, messagePayload, messageLength) != 0) { (void)(DList_RemoveEntryList(currentListEntry)); - sendMsgComplete(iothubMsgList, transportState, IOTHUB_BATCHSTATE_FAILED); + sendMsgComplete(iothubMsgList, transportState, IOTHUB_CLIENT_CONFIRMATION_ERROR); free(mqttMsgEntry); } else