static void OnRecvCallback(MQTT_MESSAGE_HANDLE msgHandle, void* context) { const APP_PAYLOAD* appMsg = mqttmessage_getApplicationMsg(msgHandle); PrintLogFunction(0, "Incoming Msg: Packet Id: %d\r\nQOS: %s\r\nTopic Name: %s\r\nIs Retained: %s\r\nIs Duplicate: %s\r\nApp Msg: ", mqttmessage_getPacketId(msgHandle), QosToString(mqttmessage_getQosType(msgHandle) ), mqttmessage_getTopicName(msgHandle), mqttmessage_getIsRetained(msgHandle) ? "true" : "fale", mqttmessage_getIsDuplicateMsg(msgHandle) ? "true" : "fale" ); for (size_t index = 0; index < appMsg->length; index++) { PrintLogFunction(0, "0x%x", appMsg->message[index]); } PrintLogFunction(0, "\r\n"); }
static void mqtt_notification_callback(MQTT_MESSAGE_HANDLE handle, void* user_ctx) { if (user_ctx != NULL) { PROV_TRANSPORT_MQTT_INFO* mqtt_info = (PROV_TRANSPORT_MQTT_INFO*)user_ctx; const APP_PAYLOAD* payload = mqttmessage_getApplicationMsg(handle); if (payload != NULL) { if (mqtt_info->payload_data != NULL) { free(mqtt_info->payload_data); mqtt_info->payload_data = NULL; } if ((mqtt_info->payload_data = malloc(payload->length + 1)) == NULL) { LogError("failure allocating payload data"); mqtt_info->transport_state = TRANSPORT_CLIENT_STATE_ERROR; mqtt_info->mqtt_state = MQTT_STATE_ERROR; } else { memset(mqtt_info->payload_data, 0, payload->length + 1); memcpy(mqtt_info->payload_data, payload->message, payload->length); if (mqtt_info->transport_state == TRANSPORT_CLIENT_STATE_REG_SENT) { mqtt_info->transport_state = TRANSPORT_CLIENT_STATE_REG_RECV; } else { mqtt_info->transport_state = TRANSPORT_CLIENT_STATE_STATUS_RECV; } } } else { LogError("failure NULL message encountered from umqtt"); mqtt_info->transport_state = TRANSPORT_CLIENT_STATE_ERROR; mqtt_info->mqtt_state = MQTT_STATE_ERROR; } } else { LogError("mqtt_notification_callback was invoked with a NULL context"); } }
static void MqttRecvCallback(MQTT_MESSAGE_HANDLE msgHandle, void* callbackCtx) { if (msgHandle != NULL && callbackCtx != NULL) { const APP_PAYLOAD* appPayload = mqttmessage_getApplicationMsg(msgHandle); IOTHUB_MESSAGE_HANDLE IoTHubMessage = IoTHubMessage_CreateFromByteArray(appPayload->message, appPayload->length); if (IoTHubMessage == NULL) { LogError("IotHub Message creation has failed.\r\n"); } else { PMQTTTRANSPORT_HANDLE_DATA transportData = (PMQTTTRANSPORT_HANDLE_DATA)callbackCtx; if (IoTHubClient_LL_MessageCallback(transportData->llClientHandle, IoTHubMessage) != IOTHUBMESSAGE_ACCEPTED) { LogError("Event not accepted by our client.\r\n"); } IoTHubMessage_Destroy(IoTHubMessage); } } }