diff --git a/demos/defender/defender_demo_json/demo_config.h b/demos/defender/defender_demo_json/demo_config.h index 9da1d37bc7..6c81c5a5b1 100644 --- a/demos/defender/defender_demo_json/demo_config.h +++ b/demos/defender/defender_demo_json/demo_config.h @@ -85,6 +85,7 @@ * @note This path is relative from the demo binary created. Update * ROOT_CA_CERT_PATH to the absolute path if this demo is executed from elsewhere. */ + #ifndef ROOT_CA_CERT_PATH #define ROOT_CA_CERT_PATH "certificates/AmazonRootCA1.crt" #endif @@ -97,7 +98,7 @@ * https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html * * @note This certificate should be PEM-encoded. - * + *m * #define CLIENT_CERT_PATH "...insert here..." */ diff --git a/demos/defender/defender_demo_json/mqtt_operations.c b/demos/defender/defender_demo_json/mqtt_operations.c index 41037ec090..1a481dcb0a 100644 --- a/demos/defender/defender_demo_json/mqtt_operations.c +++ b/demos/defender/defender_demo_json/mqtt_operations.c @@ -343,7 +343,10 @@ static void cleanupOutgoingPublishWithPacketID( uint16_t packetId ); */ static void mqttCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Resend the publishes if a session is re-established with the broker. @@ -555,7 +558,10 @@ static void cleanupOutgoingPublishWithPacketID( uint16_t packetId ) static void mqttCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { uint16_t packetIdentifier; @@ -659,7 +665,7 @@ static bool handlePublishResend( MQTTContext_t * pMqttContext ) outgoingPublishPackets[ index ].packetId ) ); mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ index ].pubInfo, - outgoingPublishPackets[ index ].packetId ); + outgoingPublishPackets[ index ].packetId , NULL); if( mqttStatus != MQTTSuccess ) { @@ -799,7 +805,7 @@ bool EstablishMqttSession( MQTTPublishCallback_t publishCallback ) pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { @@ -842,7 +848,7 @@ bool EstablishMqttSession( MQTTPublishCallback_t publishCallback ) &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, - &sessionPresent ); + &sessionPresent, NULL, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -908,7 +914,7 @@ bool DisconnectMqttSession( void ) if( mqttSessionEstablished == true ) { /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext , NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION); if( mqttStatus != MQTTSuccess ) { @@ -956,7 +962,7 @@ bool SubscribeToTopic( const char * pTopicFilter, mqttStatus = MQTT_Subscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL); if( mqttStatus != MQTTSuccess ) { @@ -1012,7 +1018,7 @@ bool UnsubscribeFromTopic( const char * pTopicFilter, mqttStatus = MQTT_Unsubscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier, NULL); if( mqttStatus != MQTTSuccess ) { @@ -1080,7 +1086,7 @@ bool PublishToTopic( const char * pTopicFilter, /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ publishIndex ].pubInfo, - outgoingPublishPackets[ publishIndex ].packetId ); + outgoingPublishPackets[ publishIndex ].packetId , NULL ); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/fleet_provisioning/fleet_provisioning_keys_cert/demo_config.h b/demos/fleet_provisioning/fleet_provisioning_keys_cert/demo_config.h index e99f49c6f5..b6f4172e17 100644 --- a/demos/fleet_provisioning/fleet_provisioning_keys_cert/demo_config.h +++ b/demos/fleet_provisioning/fleet_provisioning_keys_cert/demo_config.h @@ -85,6 +85,7 @@ * @note This path is relative from the demo binary created. Update * ROOT_CA_CERT_PATH to the absolute path if this demo is executed from elsewhere. */ + #ifndef ROOT_CA_CERT_PATH #define ROOT_CA_CERT_PATH "certificates/AmazonRootCA1.crt" #endif diff --git a/demos/fleet_provisioning/fleet_provisioning_keys_cert/mqtt_operations.c b/demos/fleet_provisioning/fleet_provisioning_keys_cert/mqtt_operations.c index fab93000f3..cbf6594aa3 100644 --- a/demos/fleet_provisioning/fleet_provisioning_keys_cert/mqtt_operations.c +++ b/demos/fleet_provisioning/fleet_provisioning_keys_cert/mqtt_operations.c @@ -343,7 +343,10 @@ static void cleanupOutgoingPublishWithPacketID( uint16_t packetId ); */ static void mqttCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Resend the publishes if a session is re-established with the broker. @@ -548,7 +551,10 @@ static void cleanupOutgoingPublishWithPacketID( uint16_t packetId ) static void mqttCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { uint16_t packetIdentifier; @@ -652,7 +658,7 @@ static bool handlePublishResend( MQTTContext_t * pMqttContext ) outgoingPublishPackets[ index ].packetId ) ); mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ index ].pubInfo, - outgoingPublishPackets[ index ].packetId ); + outgoingPublishPackets[ index ].packetId, NULL); if( mqttStatus != MQTTSuccess ) { @@ -798,7 +804,7 @@ bool EstablishMqttSession( MQTTPublishCallback_t publishCallback, pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN, NULL, 0); if( mqttStatus != MQTTSuccess ) { @@ -841,7 +847,7 @@ bool EstablishMqttSession( MQTTPublishCallback_t publishCallback, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, - &sessionPresent ); + &sessionPresent, NULL, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -908,7 +914,7 @@ bool DisconnectMqttSession( void ) if( mqttSessionEstablished == true ) { /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { @@ -956,7 +962,7 @@ bool SubscribeToTopic( const char * pTopicFilter, mqttStatus = MQTT_Subscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL); if( mqttStatus != MQTTSuccess ) { @@ -1012,7 +1018,7 @@ bool UnsubscribeFromTopic( const char * pTopicFilter, mqttStatus = MQTT_Unsubscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1080,7 +1086,7 @@ bool PublishToTopic( const char * pTopicFilter, /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ publishIndex ].pubInfo, - outgoingPublishPackets[ publishIndex ].packetId ); + outgoingPublishPackets[ publishIndex ].packetId, NULL ); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/fleet_provisioning/fleet_provisioning_with_csr/mqtt_operations.c b/demos/fleet_provisioning/fleet_provisioning_with_csr/mqtt_operations.c index fab93000f3..a128db0dc0 100644 --- a/demos/fleet_provisioning/fleet_provisioning_with_csr/mqtt_operations.c +++ b/demos/fleet_provisioning/fleet_provisioning_with_csr/mqtt_operations.c @@ -343,7 +343,10 @@ static void cleanupOutgoingPublishWithPacketID( uint16_t packetId ); */ static void mqttCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Resend the publishes if a session is re-established with the broker. @@ -548,7 +551,10 @@ static void cleanupOutgoingPublishWithPacketID( uint16_t packetId ) static void mqttCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { uint16_t packetIdentifier; @@ -652,7 +658,8 @@ static bool handlePublishResend( MQTTContext_t * pMqttContext ) outgoingPublishPackets[ index ].packetId ) ); mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ index ].pubInfo, - outgoingPublishPackets[ index ].packetId ); + outgoingPublishPackets[ index ].packetId, + NULL ); if( mqttStatus != MQTTSuccess ) { @@ -798,7 +805,7 @@ bool EstablishMqttSession( MQTTPublishCallback_t publishCallback, pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN, NULL, 0); if( mqttStatus != MQTTSuccess ) { @@ -841,7 +848,9 @@ bool EstablishMqttSession( MQTTPublishCallback_t publishCallback, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, - &sessionPresent ); + &sessionPresent, + NULL, + NULL); if( mqttStatus != MQTTSuccess ) { @@ -908,7 +917,7 @@ bool DisconnectMqttSession( void ) if( mqttSessionEstablished == true ) { /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { @@ -956,7 +965,8 @@ bool SubscribeToTopic( const char * pTopicFilter, mqttStatus = MQTT_Subscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, + NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1012,7 +1022,8 @@ bool UnsubscribeFromTopic( const char * pTopicFilter, mqttStatus = MQTT_Unsubscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier, + NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1080,7 +1091,8 @@ bool PublishToTopic( const char * pTopicFilter, /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ publishIndex ].pubInfo, - outgoingPublishPackets[ publishIndex ].packetId ); + outgoingPublishPackets[ publishIndex ].packetId, + NULL ); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/greengrass/greengrass_demo_local_auth/README.md b/demos/greengrass/greengrass_demo_local_auth/README.md index e73a25c31d..de8ee27f1b 100644 --- a/demos/greengrass/greengrass_demo_local_auth/README.md +++ b/demos/greengrass/greengrass_demo_local_auth/README.md @@ -99,7 +99,7 @@ openssl x509 -req \ Deploy the following components to your Greengrass core: - aws.greengrass.clientdevices.Auth -- aws.greengrass.clientdevices.mqtt.Moquette +- aws.greengrass.clientdevices.mqtt.EMQX - aws.greengrass.clientdevices.mqtt.Bridge - aws.greengrass.clientdevices.IPDetector diff --git a/demos/greengrass/greengrass_demo_local_auth/greengrass_demo_local_auth.c b/demos/greengrass/greengrass_demo_local_auth/greengrass_demo_local_auth.c index 9c3376bbed..a7049d474b 100644 --- a/demos/greengrass/greengrass_demo_local_auth/greengrass_demo_local_auth.c +++ b/demos/greengrass/greengrass_demo_local_auth/greengrass_demo_local_auth.c @@ -227,7 +227,10 @@ static void handleIncomingPublish( MQTTPublishInfo_t * pPublishInfo, */ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Initializes the MQTT library. @@ -433,7 +436,10 @@ static void updateSubAckStatus( MQTTPacketInfo_t * pPacketInfo ) static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { uint16_t packetId; @@ -514,7 +520,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext ) connectInfo.cleanSession = true; mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, - CONNACK_RECV_TIMEOUT_MS, &sessionPresent ); + CONNACK_RECV_TIMEOUT_MS, &sessionPresent, NULL, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -540,7 +546,7 @@ static int disconnectMqttSession( MQTTContext_t * pMqttContext ) assert( pMqttContext != NULL ); /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { @@ -571,7 +577,7 @@ static int subscribeToTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, &subInfo, 1U, - MQTT_GetPacketId( pMqttContext ) ); + MQTT_GetPacketId( pMqttContext ), NULL ); if( mqttStatus != MQTTSuccess ) { @@ -607,7 +613,7 @@ static int unsubscribeFromTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Unsubscribe( pMqttContext, &unsubInfo, 1U, - MQTT_GetPacketId( pMqttContext ) ); + MQTT_GetPacketId( pMqttContext ), NULL ); if( mqttStatus != MQTTSuccess ) { @@ -648,7 +654,7 @@ static int publishToTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Publish( pMqttContext, &publish, - packetId ); + packetId , NULL); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/mqtt/mqtt_demo_basic_tls/demo_config.h b/demos/mqtt/mqtt_demo_basic_tls/demo_config.h index 550f8f1851..c0c8353a6a 100644 --- a/demos/mqtt/mqtt_demo_basic_tls/demo_config.h +++ b/demos/mqtt/mqtt_demo_basic_tls/demo_config.h @@ -66,7 +66,6 @@ * * In general, port 8883 is for secured MQTT connections. */ -#define BROKER_PORT ( 8883 ) /** * @brief Path of the file containing the server's root CA certificate. diff --git a/demos/mqtt/mqtt_demo_basic_tls/mqtt_demo_basic_tls.c b/demos/mqtt/mqtt_demo_basic_tls/mqtt_demo_basic_tls.c index 1debebff66..ed4eccf4fe 100644 --- a/demos/mqtt/mqtt_demo_basic_tls/mqtt_demo_basic_tls.c +++ b/demos/mqtt/mqtt_demo_basic_tls/mqtt_demo_basic_tls.c @@ -343,16 +343,28 @@ static void handleIncomingPublish( MQTTPublishInfo_t * pPublishInfo, uint16_t packetIdentifier ); /** - * @brief The application callback function for getting the incoming publish - * and incoming acks reported from MQTT library. + * @brief The application callback function for handling MQTT events, including incoming publish + * messages and acknowledgments reported from the MQTT library. * - * @param[in] pMqttContext MQTT context pointer. - * @param[in] pPacketInfo Packet Info pointer for the incoming packet. - * @param[in] pDeserializedInfo Deserialized information from the incoming packet. + * @param[in] pMqttContext Pointer to the MQTT context structure containing the connection state + * and configuration. + * @param[in] pPacketInfo Pointer to the structure containing information about the incoming + * MQTT packet, including type, remaining length, and packet identifier. + * @param[in] pDeserializedInfo Pointer to the structure containing the deserialized information + * from the incoming packet, including topic, payload, and QoS level. + * @param[out] pReasonCode Pointer to store the success/failure reason code for the MQTT operation. + * Contains the specific reason for success or failure of the MQTT operation. + * @param[in,out] sendPropsBuffer Pointer to the MQTT property builder structure for outgoing + * properties. Used for setting properties in response messages. + * @param[in] getPropsBuffer Pointer to the MQTT property builder structure containing properties + * from the received message. */ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo , + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer); /** * @brief Initializes the MQTT library. @@ -726,7 +738,7 @@ static int handlePublishResend( MQTTContext_t * pMqttContext ) outgoingPublishPackets[ index ].packetId ) ); mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ index ].pubInfo, - outgoingPublishPackets[ index ].packetId ); + outgoingPublishPackets[ index ].packetId, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -845,7 +857,7 @@ static int handleResubscribe( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -900,7 +912,10 @@ static int handleResubscribe( MQTTContext_t * pMqttContext ) static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo , + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer) { uint16_t packetIdentifier; @@ -1042,7 +1057,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext, connectInfo.passwordLength = 0U; /* Send MQTT CONNECT packet to broker. */ - mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, pSessionPresent ); + mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, pSessionPresent, NULL, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1068,7 +1083,7 @@ static int disconnectMqttSession( MQTTContext_t * pMqttContext ) assert( pMqttContext != NULL ); /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, 0x00 ); if( mqttStatus != MQTTSuccess ) { @@ -1104,7 +1119,7 @@ static int subscribeToTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1147,7 +1162,7 @@ static int unsubscribeFromTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Unsubscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1200,7 +1215,7 @@ static int publishToTopic( MQTTContext_t * pMqttContext ) /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ publishIndex ].pubInfo, - outgoingPublishPackets[ publishIndex ].packetId ); + outgoingPublishPackets[ publishIndex ].packetId, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1264,7 +1279,7 @@ static int initializeMqtt( MQTTContext_t * pMqttContext, pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h b/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h index 7a451890d8..0b0f76d7a2 100644 --- a/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h +++ b/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h @@ -86,7 +86,7 @@ * ROOT_CA_CERT_PATH to the absolute path if this demo is executed from elsewhere. */ #ifndef ROOT_CA_CERT_PATH - #define ROOT_CA_CERT_PATH "certificates/AmazonRootCA1.crt" + #define ROOT_CA_CERT_PATH "build/bin/certificates/AmazonRootCA1.crt" #endif /** diff --git a/demos/mqtt/mqtt_demo_mutual_auth/mqtt_demo_mutual_auth.c b/demos/mqtt/mqtt_demo_mutual_auth/mqtt_demo_mutual_auth.c index cf34f8c28b..8efada713c 100644 --- a/demos/mqtt/mqtt_demo_mutual_auth/mqtt_demo_mutual_auth.c +++ b/demos/mqtt/mqtt_demo_mutual_auth/mqtt_demo_mutual_auth.c @@ -446,7 +446,10 @@ static void handleIncomingPublish( MQTTPublishInfo_t * pPublishInfo, */ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Initializes the MQTT library. @@ -851,7 +854,7 @@ static int handlePublishResend( MQTTContext_t * pMqttContext ) outgoingPublishPackets[ index ].packetId ) ); mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ index ].pubInfo, - outgoingPublishPackets[ index ].packetId ); + outgoingPublishPackets[ index ].packetId , NULL); if( mqttStatus != MQTTSuccess ) { @@ -968,7 +971,7 @@ static int handleResubscribe( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1023,7 +1026,10 @@ static int handleResubscribe( MQTTContext_t * pMqttContext ) static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { uint16_t packetIdentifier; @@ -1193,7 +1199,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext, #endif /* ifdef CLIENT_USERNAME */ /* Send MQTT CONNECT packet to broker. */ - mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, pSessionPresent ); + mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, pSessionPresent, NULL,NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1219,7 +1225,7 @@ static int disconnectMqttSession( MQTTContext_t * pMqttContext ) assert( pMqttContext != NULL ); /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, 0x00 ); if( mqttStatus != MQTTSuccess ) { @@ -1255,7 +1261,7 @@ static int subscribeToTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1298,7 +1304,7 @@ static int unsubscribeFromTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Unsubscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier , NULL); if( mqttStatus != MQTTSuccess ) { @@ -1351,7 +1357,7 @@ static int publishToTopic( MQTTContext_t * pMqttContext ) /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ publishIndex ].pubInfo, - outgoingPublishPackets[ publishIndex ].packetId ); + outgoingPublishPackets[ publishIndex ].packetId , NULL); if( mqttStatus != MQTTSuccess ) { @@ -1415,7 +1421,7 @@ static int initializeMqtt( MQTTContext_t * pMqttContext, pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN , NULL, 0); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/mqtt/mqtt_demo_plaintext/demo_config.h b/demos/mqtt/mqtt_demo_plaintext/demo_config.h index 93e6b32acb..a16933c342 100644 --- a/demos/mqtt/mqtt_demo_plaintext/demo_config.h +++ b/demos/mqtt/mqtt_demo_plaintext/demo_config.h @@ -66,7 +66,6 @@ * * In general, port 1883 is for unsecured MQTT connections. */ -#define BROKER_PORT ( 1883 ) /** * @brief MQTT client identifier. diff --git a/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c b/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c index 1e78f9d3be..3fa707e1d8 100644 --- a/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c +++ b/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c @@ -302,7 +302,10 @@ static void handleIncomingPublish( MQTTPublishInfo_t * pPublishInfo, */ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo , + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer); /** * @brief Sends an MQTT CONNECT packet over the already connected TCP socket. @@ -575,7 +578,7 @@ static int handleResubscribe( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -630,7 +633,10 @@ static int handleResubscribe( MQTTContext_t * pMqttContext ) static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo , + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer) { uint16_t packetIdentifier; @@ -755,7 +761,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext, pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { @@ -793,7 +799,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext, connectInfo.passwordLength = 0U; /* Send MQTT CONNECT packet to broker. */ - mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, &sessionPresent ); + mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, &sessionPresent , NULL, NULL); if( mqttStatus != MQTTSuccess ) { @@ -821,7 +827,7 @@ static int disconnectMqttSession( MQTTContext_t * pMqttContext ) assert( pMqttContext != NULL ); /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION ); if( mqttStatus != MQTTSuccess ) { @@ -857,7 +863,7 @@ static int subscribeToTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Subscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -900,7 +906,7 @@ static int unsubscribeFromTopic( MQTTContext_t * pMqttContext ) mqttStatus = MQTT_Unsubscribe( pMqttContext, pGlobalSubscriptionList, sizeof( pGlobalSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -940,7 +946,7 @@ static int publishToTopic( MQTTContext_t * pMqttContext ) /* Send PUBLISH packet. Packet Id is not used for a QoS0 publish. * Hence 0 is passed as packet id. */ - mqttStatus = MQTT_Publish( pMqttContext, &publishInfo, 0U ); + mqttStatus = MQTT_Publish( pMqttContext, &publishInfo, 0U, NULL ); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/mqtt/mqtt_demo_serializer/demo_config.h b/demos/mqtt/mqtt_demo_serializer/demo_config.h index 84b59cc983..6abf551096 100644 --- a/demos/mqtt/mqtt_demo_serializer/demo_config.h +++ b/demos/mqtt/mqtt_demo_serializer/demo_config.h @@ -66,7 +66,6 @@ * * In general, port 1883 is for unsecured MQTT connections. */ -#define BROKER_PORT 1883 /** * @brief MQTT client identifier. diff --git a/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c b/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c index cbfc55e849..76917297c5 100644 --- a/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c +++ b/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c @@ -51,6 +51,7 @@ /* MQTT Serializer Serializer API header. */ #include "core_mqtt_serializer.h" +#include "core_mqtt_utils.h" /* Plaintext transport implementation. */ #include "plaintext_posix.h" @@ -143,6 +144,11 @@ */ #define MQTT_DEMO_ITERATION_DELAY_SECONDS ( 5U ) +/** + * @brief Per the MQTT spec, the max packet size can be of max remaining length + 5 bytes + */ +#define MQTT_MAX_PACKET_SIZE ( 268435460U ) + /*-----------------------------------------------------------*/ /* Each compilation unit must define the NetworkContext struct. */ @@ -486,14 +492,14 @@ static int createMQTTConnectionWithBroker( NetworkContext_t * pNetworkContext, mqttConnectInfo.keepAliveSeconds = MQTT_KEEP_ALIVE_INTERVAL_SECONDS; /* Get size requirement for the connect packet */ - result = MQTT_GetConnectPacketSize( &mqttConnectInfo, NULL, &remainingLength, &packetSize ); + result = MQTT_GetConnectPacketSize( &mqttConnectInfo, NULL, NULL, NULL, &remainingLength, &packetSize ); /* Make sure the packet size is less than static buffer size. */ assert( result == MQTTSuccess ); assert( packetSize < pFixedBuffer->size ); /* Serialize MQTT connect packet into the provided buffer. */ - result = MQTT_SerializeConnect( &mqttConnectInfo, NULL, remainingLength, pFixedBuffer ); + result = MQTT_SerializeConnect( &mqttConnectInfo, NULL, NULL, NULL, remainingLength, pFixedBuffer ); assert( result == MQTTSuccess ); /* Send the serialized connect packet to the MQTT broker */ @@ -516,7 +522,7 @@ static int createMQTTConnectionWithBroker( NetworkContext_t * pNetworkContext, Clock_SleepMs( MQTT_RESPONSE_WAIT_TIME_MS ); /* Since TCP socket has timeout, retry until the data is available */ result = MQTT_GetIncomingPacketTypeAndLength( Plaintext_Recv, pNetworkContext, &incomingPacket ); - LogInfo( ( "MQTT_GetIncomingPacketTypeAndLength returned: %d\n", result ) ); + // LogInfo( ( "MQTT_GetIncomingPacketTypeAndLength returned: %d\n", result ) ); } while( ( result == MQTTNoDataAvailable ) ); assert( result == MQTTSuccess ); @@ -531,7 +537,11 @@ static int createMQTTConnectionWithBroker( NetworkContext_t * pNetworkContext, /* Deserialize the received packet to make sure the content of the CONNACK * is valid. Note that the packetId is not present in the connection ack. */ - result = MQTT_DeserializeAck( &incomingPacket, &packetId, &sessionPresent ); + MQTTConnectProperties_t connackProperties = {0} ; + connackProperties.maxPacketSize = MQTT_MAX_PACKET_SIZE; + + MQTTPropBuilder_t propBuffer = {0} ; + result = MQTT_DeserializeAck( &incomingPacket, NULL, &sessionPresent, NULL, 0, MQTT_MAX_PACKET_SIZE, NULL, &connackProperties ); if( result != MQTTSuccess ) { @@ -578,7 +588,8 @@ static void mqttSubscribeToTopic( NetworkContext_t * pNetworkContext, result = MQTT_GetSubscribePacketSize( mqttSubscription, sizeof( mqttSubscription ) / sizeof( MQTTSubscribeInfo_t ), - &remainingLength, &packetSize ); + NULL, + &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE ); /* Make sure the packet size is less than static buffer size. */ assert( result == MQTTSuccess ); @@ -586,8 +597,10 @@ static void mqttSubscribeToTopic( NetworkContext_t * pNetworkContext, subscribePacketIdentifier = getNextPacketIdentifier(); /* Serialize subscribe into statically allocated buffer. */ + result = MQTT_SerializeSubscribe( mqttSubscription, sizeof( mqttSubscription ) / sizeof( MQTTSubscribeInfo_t ), + NULL, subscribePacketIdentifier, remainingLength, pFixedBuffer ); @@ -631,7 +644,7 @@ static void mqttPublishToTopic( NetworkContext_t * pNetworkContext, mqttPublishInfo.payloadLength = strlen( MQTT_EXAMPLE_MESSAGE ); /* Find out length of Publish packet size. */ - result = MQTT_GetPublishPacketSize( &mqttPublishInfo, &remainingLength, &packetSize ); + result = MQTT_GetPublishPacketSize( &mqttPublishInfo, NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE ); assert( result == MQTTSuccess ); /* Make sure the packet size is less than static buffer size. */ @@ -641,6 +654,7 @@ static void mqttPublishToTopic( NetworkContext_t * pNetworkContext, * be sent directly in order to avoid copying it into the buffer. * QOS0 does not make use of packet identifier, therefore value of 0 is used */ result = MQTT_SerializePublishHeader( &mqttPublishInfo, + NULL, 0, remainingLength, pFixedBuffer, @@ -680,8 +694,10 @@ static void mqttUnsubscribeFromTopic( NetworkContext_t * pNetworkContext, result = MQTT_GetUnsubscribePacketSize( mqttSubscription, sizeof( mqttSubscription ) / sizeof( MQTTSubscribeInfo_t ), + NULL, &remainingLength, - &packetSize ); + &packetSize, + MQTT_MAX_PACKET_SIZE); assert( result == MQTTSuccess ); /* Make sure the packet size is less than static buffer size */ assert( packetSize < pFixedBuffer->size ); @@ -691,6 +707,7 @@ static void mqttUnsubscribeFromTopic( NetworkContext_t * pNetworkContext, result = MQTT_SerializeUnsubscribe( mqttSubscription, sizeof( mqttSubscription ) / sizeof( MQTTSubscribeInfo_t ), + NULL, unsubscribePacketIdentifier, remainingLength, pFixedBuffer ); @@ -734,17 +751,18 @@ static void mqttDisconnect( NetworkContext_t * pNetworkContext, { MQTTStatus_t result; int32_t status; + size_t remainingLength ; size_t packetSize = 0; /* Suppress unused variable warnings when asserts are disabled in build. */ ( void ) status; ( void ) result; - - status = MQTT_GetDisconnectPacketSize( &packetSize ); + + status = MQTT_GetDisconnectPacketSize( NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION ); assert( packetSize <= pFixedBuffer->size ); - result = MQTT_SerializeDisconnect( pFixedBuffer ); + result = MQTT_SerializeDisconnect( NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION, remainingLength, pFixedBuffer ); assert( result == MQTTSuccess ); /* Send disconnect packet to the broker */ @@ -860,7 +878,7 @@ static void mqttProcessIncomingPacket( NetworkContext_t * pNetworkContext, Clock_SleepMs( MQTT_RESPONSE_WAIT_TIME_MS ); /* Retry till data is available */ result = MQTT_GetIncomingPacketTypeAndLength( Plaintext_Recv, pNetworkContext, &incomingPacket ); - LogInfo( ( "MQTT_GetIncomingPacketTypeAndLength returned: %d\n", result ) ); + // LogInfo( ( "MQTT_GetIncomingPacketTypeAndLength returned: %d\n", result ) ); } while( ( result == MQTTNoDataAvailable ) ); assert( result == MQTTSuccess ); @@ -882,7 +900,7 @@ static void mqttProcessIncomingPacket( NetworkContext_t * pNetworkContext, if( ( incomingPacket.type & 0xf0 ) == MQTT_PACKET_TYPE_PUBLISH ) { - result = MQTT_DeserializePublish( &incomingPacket, &packetId, &publishInfo ); + result = MQTT_DeserializePublish( &incomingPacket, &packetId, &publishInfo , NULL, MQTT_MAX_PACKET_SIZE, 0); assert( result == MQTTSuccess ); /* Process incoming Publish message. */ @@ -890,22 +908,10 @@ static void mqttProcessIncomingPacket( NetworkContext_t * pNetworkContext, } else { - /* If the received packet is not a Publish message, then it is an ACK for one - * of the messages we sent out, verify that the ACK packet is a valid MQTT - * packet. Since CONNACK is already processed, session present parameter is - * to NULL */ - result = MQTT_DeserializeAck( &incomingPacket, &packetId, &sessionPresent ); - - if( incomingPacket.type == MQTT_PACKET_TYPE_SUBACK ) - { - globalSubAckStatus = ( result == MQTTSuccess ); - assert( result == MQTTSuccess || result == MQTTServerRefused ); - } - else - { - assert( result == MQTTSuccess ); - } - + MQTTReasonCodeInfo_t reasonCodes ; + result = MQTT_DeserializeAck( &incomingPacket, &packetId, NULL, &reasonCodes,0, MQTT_MAX_PACKET_SIZE,NULL, NULL ); + globalSubAckStatus = ( result == MQTTSuccess ); + assert( result == MQTTSuccess || result == MQTTServerRefused ); /* Process the response. */ mqttProcessResponse( &incomingPacket, packetId ); } diff --git a/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h b/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h index b2470432da..39dd40017c 100644 --- a/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h +++ b/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h @@ -66,7 +66,6 @@ * * In general, port 8883 is for secured MQTT connections. */ -#define BROKER_PORT ( 8883 ) /** * @brief Path of the file containing the server's root CA certificate. diff --git a/demos/mqtt/mqtt_demo_subscription_manager/mqtt_demo_subscription_manager.c b/demos/mqtt/mqtt_demo_subscription_manager/mqtt_demo_subscription_manager.c index 1decd4abe4..b7748e7c15 100644 --- a/demos/mqtt/mqtt_demo_subscription_manager/mqtt_demo_subscription_manager.c +++ b/demos/mqtt/mqtt_demo_subscription_manager/mqtt_demo_subscription_manager.c @@ -441,7 +441,10 @@ static void precipitationDataCallback( MQTTContext_t * pContext, */ static void commonEventHandler( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo , + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Sends an MQTT CONNECT packet over the already connected TCP socket. @@ -789,12 +792,15 @@ static void precipitationDataCallback( MQTTContext_t * pContext, static void commonEventHandler( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo , + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { assert( pMqttContext != NULL ); assert( pPacketInfo != NULL ); assert( pDeserializedInfo != NULL ); - assert( pDeserializedInfo->packetIdentifier != MQTT_PACKET_ID_INVALID ); + // assert( pDeserializedInfo->packetIdentifier != MQTT_PACKET_ID_INVALID ); /* Handle incoming publish. The lower 4 bits of the publish packet * type is used for the dup, QoS, and retain flags. Hence masking @@ -898,7 +904,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext, pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN , NULL, 0); if( mqttStatus != MQTTSuccess ) { @@ -936,7 +942,7 @@ static int establishMqttSession( MQTTContext_t * pMqttContext, connectInfo.passwordLength = 0U; /* Send MQTT CONNECT packet to broker. */ - mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, pSessionPresent ); + mqttStatus = MQTT_Connect( pMqttContext, &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, pSessionPresent, NULL, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -963,7 +969,7 @@ static int disconnectMqttSession( MQTTContext_t * pMqttContext ) assert( pMqttContext != NULL ); /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext , NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION); if( mqttStatus != MQTTSuccess ) { @@ -1003,7 +1009,7 @@ static int subscribeToTopic( MQTTContext_t * pMqttContext, mqttStatus = MQTT_Subscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - lastSubscribePacketIdentifier ); + lastSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1087,7 +1093,7 @@ static int unsubscribeFromTopicFilters( MQTTContext_t * pMqttContext, mqttStatus = MQTT_Unsubscribe( pMqttContext, pTopicFilters, numOfTopicFilters, - lastUnsubscribePacketIdentifier ); + lastUnsubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1151,7 +1157,7 @@ static int publishToTopicAndProcessIncomingMessage( MQTTContext_t * pMqttContext /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &publishInfo, - pubPacketId ); + pubPacketId , NULL); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/shadow/shadow_demo_main/demo_config.h b/demos/shadow/shadow_demo_main/demo_config.h index 87653ae9b3..099993762f 100644 --- a/demos/shadow/shadow_demo_main/demo_config.h +++ b/demos/shadow/shadow_demo_main/demo_config.h @@ -68,7 +68,6 @@ * @note Port 443 requires use of the ALPN TLS extension with the ALPN protocol * name. When using port 8883, ALPN is not required. */ -#define AWS_MQTT_PORT ( 8883 ) /** * @brief Path of the file containing the server's root CA certificate. diff --git a/demos/shadow/shadow_demo_main/shadow_demo_helpers.c b/demos/shadow/shadow_demo_main/shadow_demo_helpers.c index 346c836497..07222b2dcb 100644 --- a/demos/shadow/shadow_demo_main/shadow_demo_helpers.c +++ b/demos/shadow/shadow_demo_main/shadow_demo_helpers.c @@ -686,7 +686,7 @@ static int handlePublishResend( MQTTContext_t * pMqttContext ) outgoingPublishPackets[ index ].packetId ) ); mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ index ].pubInfo, - outgoingPublishPackets[ index ].packetId ); + outgoingPublishPackets[ index ].packetId, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -770,7 +770,7 @@ int EstablishMqttSession( MQTTEventCallback_t eventCallback ) pOutgoingPublishRecords, OUTGOING_PUBLISH_RECORD_LEN, pIncomingPublishRecords, - INCOMING_PUBLISH_RECORD_LEN ); + INCOMING_PUBLISH_RECORD_LEN, NULL, 0 ); if( mqttStatus != MQTTSuccess ) { @@ -812,7 +812,7 @@ int EstablishMqttSession( MQTTEventCallback_t eventCallback ) &connectInfo, NULL, CONNACK_RECV_TIMEOUT_MS, - &sessionPresent ); + &sessionPresent, NULL, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -877,7 +877,7 @@ int32_t DisconnectMqttSession( void ) if( mqttSessionEstablished == true ) { /* Send DISCONNECT. */ - mqttStatus = MQTT_Disconnect( pMqttContext ); + mqttStatus = MQTT_Disconnect( pMqttContext, NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION ); if( mqttStatus != MQTTSuccess ) { @@ -922,7 +922,7 @@ int32_t SubscribeToTopic( const char * pTopicFilter, mqttStatus = MQTT_Subscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalSubscribePacketIdentifier ); + globalSubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -980,7 +980,7 @@ int32_t UnsubscribeFromTopic( const char * pTopicFilter, mqttStatus = MQTT_Unsubscribe( pMqttContext, pSubscriptionList, sizeof( pSubscriptionList ) / sizeof( MQTTSubscribeInfo_t ), - globalUnsubscribePacketIdentifier ); + globalUnsubscribePacketIdentifier, NULL ); if( mqttStatus != MQTTSuccess ) { @@ -1051,7 +1051,7 @@ int32_t PublishToTopic( const char * pTopicFilter, /* Send PUBLISH packet. */ mqttStatus = MQTT_Publish( pMqttContext, &outgoingPublishPackets[ publishIndex ].pubInfo, - outgoingPublishPackets[ publishIndex ].packetId ); + outgoingPublishPackets[ publishIndex ].packetId, NULL ); if( mqttStatus != MQTTSuccess ) { diff --git a/demos/shadow/shadow_demo_main/shadow_demo_main.c b/demos/shadow/shadow_demo_main/shadow_demo_main.c index 3f0e74190b..cefe407fc5 100644 --- a/demos/shadow/shadow_demo_main/shadow_demo_main.c +++ b/demos/shadow/shadow_demo_main/shadow_demo_main.c @@ -237,7 +237,10 @@ static bool shadowDeleted = false; */ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ); + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer); /** * @brief Process payload from /update/delta topic. @@ -558,7 +561,10 @@ static void updateAcceptedHandler( MQTTPublishInfo_t * pPublishInfo ) */ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, - MQTTDeserializedInfo_t * pDeserializedInfo ) + MQTTDeserializedInfo_t * pDeserializedInfo, + MQTTSuccessFailReasonCode_t * pReasonCode, + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer) { ShadowMessageType_t messageType = ShadowMessageTypeMaxNum; const char * pThingName = NULL; diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 86a5750bb3..baaec2b339 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 86a5750bb31e05fa69ef3f4e2f5e69d9317fae44 +Subproject commit baaec2b3391e93df82c01f1cbdd41451784db502