From 2a5e6744f56a73d0660bb7794e5ff20aa5a099d7 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 02:53:54 +0000 Subject: [PATCH 01/26] Point coreMQTT submodule to my fork and branch --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 86a5750bb3..1eab9fe421 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 86a5750bb31e05fa69ef3f4e2f5e69d9317fae44 +Subproject commit 1eab9fe421616dbe7fb19bc641a582cb5dd502ba From d8a418200e32e17daf5d51b28ae8afe9e4001b82 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 03:14:54 +0000 Subject: [PATCH 02/26] Temporarily point coreMQTT submodule to upstream main branch --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 1eab9fe421..42d843f40e 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 1eab9fe421616dbe7fb19bc641a582cb5dd502ba +Subproject commit 42d843f40ef2abc752a419f45f7adb7dac67e591 From d3da58c9852370e135e2e232ecfac5c317ee9cc7 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 10:02:15 +0000 Subject: [PATCH 03/26] point to mqtt-v5 --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 42d843f40e..1eab9fe421 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 42d843f40ef2abc752a419f45f7adb7dac67e591 +Subproject commit 1eab9fe421616dbe7fb19bc641a582cb5dd502ba From 545b1b4dd02b9ff8b2895d7cec3995602ecef9c4 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 10:09:19 +0000 Subject: [PATCH 04/26] add plaintext demo --- demos/mqtt/mqtt_demo_plaintext/demo_config.h | 2 +- .../mqtt_demo_plaintext/mqtt_demo_plaintext.c | 24 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/demos/mqtt/mqtt_demo_plaintext/demo_config.h b/demos/mqtt/mqtt_demo_plaintext/demo_config.h index 93e6b32acb..d5930671c2 100644 --- a/demos/mqtt/mqtt_demo_plaintext/demo_config.h +++ b/demos/mqtt/mqtt_demo_plaintext/demo_config.h @@ -60,7 +60,7 @@ * * #define BROKER_ENDPOINT "...insert here..." */ - +#define BROKER_ENDPOINT "test.mosquitto.org" /** * @brief MQTT server port number. * diff --git a/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c b/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c index 1e78f9d3be..b89d98d184 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 ) { From db3fa64667296c880f1cfb9b424de97fc2108c9b Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 10:53:16 +0000 Subject: [PATCH 05/26] add mutual auth demo --- .../mqtt/mqtt_demo_mutual_auth/demo_config.h | 8 +++--- .../mqtt_demo_mutual_auth.c | 26 ++++++++++++------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h b/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h index 7a451890d8..417f3370e7 100644 --- a/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h +++ b/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h @@ -57,7 +57,7 @@ * * #define AWS_IOT_ENDPOINT "...insert here..." */ - +#define AWS_IOT_ENDPOINT "arfk9u1wy8ods-ats.iot.ap-south-1.amazonaws.com" /** * @brief AWS IoT MQTT broker port number. * @@ -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 "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/AmazonRootCA1.crt" #endif /** @@ -100,7 +100,7 @@ * * #define CLIENT_CERT_PATH "...insert here..." */ - +#define CLIENT_CERT_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/cert.crt" /** * @brief Path of the file containing the client's private key. * @@ -112,7 +112,7 @@ * * #define CLIENT_PRIVATE_KEY_PATH "...insert here..." */ - +#define CLIENT_PRIVATE_KEY_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/private_key.key" /** * @brief The username value for authenticating client to MQTT broker when * username/password based client authentication is used. 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..f15dd9634a 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 ) { From 295b5bbd961655b06171873f40a7e012d67852da Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 15:06:37 +0000 Subject: [PATCH 06/26] add basic tls demo --- .../mqtt_demo_basic_tls/mqtt_demo_basic_tls.c | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) 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..82f86c7a47 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 ) { From ba43d5cd7519b97356a169e2ababe211fa5f169b Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sat, 17 May 2025 23:03:03 +0000 Subject: [PATCH 07/26] Temporarily point coreMQTT submodule to upstream main branch --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 1eab9fe421..4b4e47b358 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 1eab9fe421616dbe7fb19bc641a582cb5dd502ba +Subproject commit 4b4e47b3583c54bf0a87d957b1c4c6db7b2cab8b From 2332de73ff421f136496e969f25d27d03a7f8b80 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sun, 18 May 2025 07:44:31 +0000 Subject: [PATCH 08/26] add serializer demo --- demos/mqtt/mqtt_demo_basic_tls/demo_config.h | 4 +- .../mqtt/mqtt_demo_serializer/CMakeLists.txt | 2 + demos/mqtt/mqtt_demo_serializer/demo_config.h | 2 +- .../mqtt_demo_serializer.c | 77 ++++++++++++------- 4 files changed, 56 insertions(+), 29 deletions(-) diff --git a/demos/mqtt/mqtt_demo_basic_tls/demo_config.h b/demos/mqtt/mqtt_demo_basic_tls/demo_config.h index 550f8f1851..01cf9e2e5e 100644 --- a/demos/mqtt/mqtt_demo_basic_tls/demo_config.h +++ b/demos/mqtt/mqtt_demo_basic_tls/demo_config.h @@ -60,7 +60,7 @@ * * #define BROKER_ENDPOINT "...insert here..." */ - +#define BROKER_ENDPOINT "test.mosquitto.org" /** * @brief MQTT server port number. * @@ -75,7 +75,7 @@ * * #define ROOT_CA_CERT_PATH ".....insert here...." */ - +#define ROOT_CA_CERT_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/mosquitto_rootCA.crt" /** * @brief MQTT client identifier. * diff --git a/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt b/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt index 6e6df75477..d0360ffe8a 100644 --- a/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt +++ b/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt @@ -17,6 +17,8 @@ add_executable( ${BACKOFF_ALGORITHM_SOURCES} ) +target_sources(${DEMO_NAME} PRIVATE ${ROOT_DIR}/libraries/standard/coreMQTT/source/core_mqtt_utils.c) + target_link_libraries( ${DEMO_NAME} PRIVATE diff --git a/demos/mqtt/mqtt_demo_serializer/demo_config.h b/demos/mqtt/mqtt_demo_serializer/demo_config.h index 84b59cc983..0db1ad3c13 100644 --- a/demos/mqtt/mqtt_demo_serializer/demo_config.h +++ b/demos/mqtt/mqtt_demo_serializer/demo_config.h @@ -60,7 +60,7 @@ * * #define BROKER_ENDPOINT "...insert here..." */ - +#define BROKER_ENDPOINT "test.mosquitto.org" /** * @brief MQTT server port number. * diff --git a/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c b/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c index cbfc55e849..0df96be7bc 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 */ @@ -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_DeserializeConnack( &connackProperties, &incomingPacket, &sessionPresent, &propBuffer ); 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 */ @@ -882,33 +900,40 @@ 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); assert( result == MQTTSuccess ); /* Process incoming Publish message. */ mqttProcessIncomingPublish( &publishInfo, packetId ); } - else + else if( ( incomingPacket.type == MQTT_PACKET_TYPE_SUBACK ) || ( incomingPacket.type == MQTT_PACKET_TYPE_UNSUBACK ) ) { - /* 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_DeserializeSuback( &reasonCodes, &incomingPacket, &packetId, NULL, MQTT_MAX_PACKET_SIZE ); + globalSubAckStatus = ( result == MQTTSuccess ); + assert( result == MQTTSuccess || result == MQTTServerRefused ); /* Process the response. */ mqttProcessResponse( &incomingPacket, packetId ); } + else if( (incomingPacket.type == MQTT_PACKET_TYPE_PUBACK) || + (incomingPacket.type == MQTT_PACKET_TYPE_PUBREC) || + (incomingPacket.type == MQTT_PACKET_TYPE_PUBREL) || + (incomingPacket.type == MQTT_PACKET_TYPE_PUBCOMP) ) + { + MQTTReasonCodeInfo_t reasonCode ; + result = MQTT_DeserializePublishAck( &incomingPacket, &packetId, &reasonCode, 0 , MQTT_MAX_PACKET_SIZE, NULL ); + assert( result == MQTTSuccess ); + /* Process the response. */ + mqttProcessResponse( &incomingPacket, packetId ); + } + else + { + result = MQTT_DeserializePing(&incomingPacket); + assert( result == MQTTSuccess ); + /* Process the response. */ + mqttProcessResponse( &incomingPacket, packetId ); + } } /*-----------------------------------------------------------*/ From d4fa9be95cde6455580c7a3ef86547d5018a48eb Mon Sep 17 00:00:00 2001 From: blipbloping Date: Sun, 18 May 2025 08:23:57 +0000 Subject: [PATCH 09/26] add subscription manager demo --- .../demo_config.h | 4 ++-- .../mqtt_demo_subscription_manager.c | 24 ++++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h b/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h index b2470432da..7f3efaf44f 100644 --- a/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h +++ b/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h @@ -60,7 +60,7 @@ * * #define BROKER_ENDPOINT "...insert here..." */ - +#define BROKER_ENDPOINT "test.mosquitto.org" /** * @brief MQTT server port number. * @@ -75,7 +75,7 @@ * * #define ROOT_CA_CERT_PATH "....insert here...." */ - +#define ROOT_CA_CERT_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/mosquitto_rootCA.crt" /** * @brief MQTT client identifier. * 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 ) { From 7fc1784ef2f7937742bc2f71f0b0e35b423de3ac Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 05:05:26 +0000 Subject: [PATCH 10/26] add defender demo --- .../defender_demo_json/mqtt_operations.c | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) 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 ) { From d16cfe5c36ff062ab2f06c16a141f41fc68edbfe Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 05:22:43 +0000 Subject: [PATCH 11/26] add shadow demo --- .../mqtt/mqtt_demo_basic_tls/mqtt_demo_basic_tls.c | 8 ++++---- .../shadow/shadow_demo_main/shadow_demo_helpers.c | 14 +++++++------- demos/shadow/shadow_demo_main/shadow_demo_main.c | 10 ++++++++-- 3 files changed, 19 insertions(+), 13 deletions(-) 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 82f86c7a47..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 @@ -363,8 +363,8 @@ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, MQTTDeserializedInfo_t * pDeserializedInfo , MQTTSuccessFailReasonCode_t * pReasonCode, - MqttPropBuilder_t * sendPropsBuffer, - MqttPropBuilder_t * getPropsBuffer); + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer); /** * @brief Initializes the MQTT library. @@ -914,8 +914,8 @@ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, MQTTDeserializedInfo_t * pDeserializedInfo , MQTTSuccessFailReasonCode_t * pReasonCode, - MqttPropBuilder_t * sendPropsBuffer, - MqttPropBuilder_t * getPropsBuffer) + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer) { uint16_t packetIdentifier; 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; From f9d7ce4fd3a6e3e05200b7242208f277280ce6a8 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 05:25:48 +0000 Subject: [PATCH 12/26] minor fix --- demos/mqtt/mqtt_demo_mutual_auth/mqtt_demo_mutual_auth.c | 8 ++++---- demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) 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 f15dd9634a..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 @@ -448,8 +448,8 @@ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, MQTTDeserializedInfo_t * pDeserializedInfo, MQTTSuccessFailReasonCode_t * pReasonCode, - MqttPropBuilder_t * sendPropsBuffer, - MqttPropBuilder_t * getPropsBuffer ); + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ); /** * @brief Initializes the MQTT library. @@ -1028,8 +1028,8 @@ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, MQTTDeserializedInfo_t * pDeserializedInfo, MQTTSuccessFailReasonCode_t * pReasonCode, - MqttPropBuilder_t * sendPropsBuffer, - MqttPropBuilder_t * getPropsBuffer ) + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer ) { uint16_t packetIdentifier; diff --git a/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c b/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c index b89d98d184..3fa707e1d8 100644 --- a/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c +++ b/demos/mqtt/mqtt_demo_plaintext/mqtt_demo_plaintext.c @@ -304,8 +304,8 @@ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, MQTTDeserializedInfo_t * pDeserializedInfo , MQTTSuccessFailReasonCode_t * pReasonCode, - MqttPropBuilder_t * sendPropsBuffer, - MqttPropBuilder_t * getPropsBuffer); + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer); /** * @brief Sends an MQTT CONNECT packet over the already connected TCP socket. @@ -635,8 +635,8 @@ static void eventCallback( MQTTContext_t * pMqttContext, MQTTPacketInfo_t * pPacketInfo, MQTTDeserializedInfo_t * pDeserializedInfo , MQTTSuccessFailReasonCode_t * pReasonCode, - MqttPropBuilder_t * sendPropsBuffer, - MqttPropBuilder_t * getPropsBuffer) + MQTTPropBuilder_t * sendPropsBuffer, + MQTTPropBuilder_t * getPropsBuffer) { uint16_t packetIdentifier; From 634dc47579cd6e2d1a82c57f9bafcc3a034dc0cc Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 09:34:03 +0000 Subject: [PATCH 13/26] Temporarily point coreMQTT submodule to upstream main branch --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 4b4e47b358..42d843f40e 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 4b4e47b3583c54bf0a87d957b1c4c6db7b2cab8b +Subproject commit 42d843f40ef2abc752a419f45f7adb7dac67e591 From a9c031abf810425c1af57e8ebd388f2304aa5537 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 09:50:28 +0000 Subject: [PATCH 14/26] point to mqtt-v5 --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 42d843f40e..58ade31e88 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 42d843f40ef2abc752a419f45f7adb7dac67e591 +Subproject commit 58ade31e889a46cb839017425c7f53952dd4bb2e From 5332e1aad5fd8317bd3454a6d79eb4e7e93f84f7 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 10:16:58 +0000 Subject: [PATCH 15/26] point to main --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 58ade31e88..42d843f40e 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 58ade31e889a46cb839017425c7f53952dd4bb2e +Subproject commit 42d843f40ef2abc752a419f45f7adb7dac67e591 From 6e4763965b87778502a59c06489a9a27fb289e21 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 10:54:29 +0000 Subject: [PATCH 16/26] add fleet provisioning keys cert --- .../mqtt_operations.c | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) 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 ) { From 41ffc2f269e865c87aa798822430b0178c49f8cc Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 10:57:17 +0000 Subject: [PATCH 17/26] point to mqtt-v5 --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 42d843f40e..720ae166ec 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 42d843f40ef2abc752a419f45f7adb7dac67e591 +Subproject commit 720ae166ecef8a3b2f1ceb38d87695e96e76960e From e1f718ae808b5c6bda9ff5c9a9f34eef7f06036a Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 11:16:04 +0000 Subject: [PATCH 18/26] add fleet provisioning with csr --- .../mqtt_operations.c | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) 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 ) { From d7c856a8cf186c4c818858c06a009e5fde94a6f4 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 11:30:25 +0000 Subject: [PATCH 19/26] add greengrass demo --- .../greengrass_demo_local_auth.c | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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 ) { From f709067e2623bb114a6cd963ed1f333d0856b736 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Mon, 19 May 2025 12:11:53 +0000 Subject: [PATCH 20/26] modify demo config --- demos/defender/defender_demo_json/demo_config.h | 3 ++- .../fleet_provisioning_keys_cert/demo_config.h | 1 + demos/mqtt/mqtt_demo_basic_tls/demo_config.h | 5 ++--- demos/mqtt/mqtt_demo_mutual_auth/demo_config.h | 8 ++++---- demos/mqtt/mqtt_demo_plaintext/demo_config.h | 3 +-- demos/mqtt/mqtt_demo_serializer/demo_config.h | 3 +-- demos/mqtt/mqtt_demo_subscription_manager/demo_config.h | 5 ++--- demos/shadow/shadow_demo_main/demo_config.h | 1 - 8 files changed, 13 insertions(+), 16 deletions(-) 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/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/mqtt/mqtt_demo_basic_tls/demo_config.h b/demos/mqtt/mqtt_demo_basic_tls/demo_config.h index 01cf9e2e5e..c0c8353a6a 100644 --- a/demos/mqtt/mqtt_demo_basic_tls/demo_config.h +++ b/demos/mqtt/mqtt_demo_basic_tls/demo_config.h @@ -60,13 +60,12 @@ * * #define BROKER_ENDPOINT "...insert here..." */ -#define BROKER_ENDPOINT "test.mosquitto.org" + /** * @brief MQTT server port number. * * 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. @@ -75,7 +74,7 @@ * * #define ROOT_CA_CERT_PATH ".....insert here...." */ -#define ROOT_CA_CERT_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/mosquitto_rootCA.crt" + /** * @brief MQTT client identifier. * diff --git a/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h b/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h index 417f3370e7..0b0f76d7a2 100644 --- a/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h +++ b/demos/mqtt/mqtt_demo_mutual_auth/demo_config.h @@ -57,7 +57,7 @@ * * #define AWS_IOT_ENDPOINT "...insert here..." */ -#define AWS_IOT_ENDPOINT "arfk9u1wy8ods-ats.iot.ap-south-1.amazonaws.com" + /** * @brief AWS IoT MQTT broker port number. * @@ -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 "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/AmazonRootCA1.crt" + #define ROOT_CA_CERT_PATH "build/bin/certificates/AmazonRootCA1.crt" #endif /** @@ -100,7 +100,7 @@ * * #define CLIENT_CERT_PATH "...insert here..." */ -#define CLIENT_CERT_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/cert.crt" + /** * @brief Path of the file containing the client's private key. * @@ -112,7 +112,7 @@ * * #define CLIENT_PRIVATE_KEY_PATH "...insert here..." */ -#define CLIENT_PRIVATE_KEY_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/private_key.key" + /** * @brief The username value for authenticating client to MQTT broker when * username/password based client authentication is used. diff --git a/demos/mqtt/mqtt_demo_plaintext/demo_config.h b/demos/mqtt/mqtt_demo_plaintext/demo_config.h index d5930671c2..a16933c342 100644 --- a/demos/mqtt/mqtt_demo_plaintext/demo_config.h +++ b/demos/mqtt/mqtt_demo_plaintext/demo_config.h @@ -60,13 +60,12 @@ * * #define BROKER_ENDPOINT "...insert here..." */ -#define BROKER_ENDPOINT "test.mosquitto.org" + /** * @brief MQTT server port number. * * 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/demo_config.h b/demos/mqtt/mqtt_demo_serializer/demo_config.h index 0db1ad3c13..6abf551096 100644 --- a/demos/mqtt/mqtt_demo_serializer/demo_config.h +++ b/demos/mqtt/mqtt_demo_serializer/demo_config.h @@ -60,13 +60,12 @@ * * #define BROKER_ENDPOINT "...insert here..." */ -#define BROKER_ENDPOINT "test.mosquitto.org" + /** * @brief MQTT server port number. * * In general, port 1883 is for unsecured MQTT connections. */ -#define BROKER_PORT 1883 /** * @brief MQTT client identifier. diff --git a/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h b/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h index 7f3efaf44f..39dd40017c 100644 --- a/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h +++ b/demos/mqtt/mqtt_demo_subscription_manager/demo_config.h @@ -60,13 +60,12 @@ * * #define BROKER_ENDPOINT "...insert here..." */ -#define BROKER_ENDPOINT "test.mosquitto.org" + /** * @brief MQTT server port number. * * 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. @@ -75,7 +74,7 @@ * * #define ROOT_CA_CERT_PATH "....insert here...." */ -#define ROOT_CA_CERT_PATH "/home/ubuntu/aws-iot-device-sdk-embedded-C/certs/mosquitto_rootCA.crt" + /** * @brief MQTT client identifier. * 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. From 4734136e325e0b4dacbdc6b99e1104fd00ca6800 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Tue, 20 May 2025 07:28:14 +0000 Subject: [PATCH 21/26] Add README changes for greengrass demo --- demos/greengrass/greengrass_demo_local_auth/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From de993cd75bb6187210f1a67afdb061a1a8a6982d Mon Sep 17 00:00:00 2001 From: blipbloping Date: Tue, 20 May 2025 10:13:58 +0000 Subject: [PATCH 22/26] modify cmake of the serializer demo --- demos/mqtt/mqtt_demo_serializer/CMakeLists.txt | 2 -- libraries/standard/coreMQTT | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt b/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt index d0360ffe8a..6e6df75477 100644 --- a/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt +++ b/demos/mqtt/mqtt_demo_serializer/CMakeLists.txt @@ -17,8 +17,6 @@ add_executable( ${BACKOFF_ALGORITHM_SOURCES} ) -target_sources(${DEMO_NAME} PRIVATE ${ROOT_DIR}/libraries/standard/coreMQTT/source/core_mqtt_utils.c) - target_link_libraries( ${DEMO_NAME} PRIVATE diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 720ae166ec..3440939941 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 720ae166ecef8a3b2f1ceb38d87695e96e76960e +Subproject commit 34409399411f368f460c40aac19002988f251ce9 From 75acbfdb12509d6c62281c24af6542a678a5d9b1 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Wed, 28 May 2025 10:23:10 +0000 Subject: [PATCH 23/26] Point submodule pointer to the latest version of MQTTV5 --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 3440939941..69be6fb6f1 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 34409399411f368f460c40aac19002988f251ce9 +Subproject commit 69be6fb6f1e11d959df5209c778765b38bb8e273 From 50bebc3674d1e4f81cc77315721713475ef0ed0f Mon Sep 17 00:00:00 2001 From: blipbloping Date: Wed, 28 May 2025 10:33:09 +0000 Subject: [PATCH 24/26] Update Serializer Demo to support v5 features --- .../mqtt_demo_serializer.c | 31 ++++--------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c b/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c index 0df96be7bc..76917297c5 100644 --- a/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c +++ b/demos/mqtt/mqtt_demo_serializer/mqtt_demo_serializer.c @@ -522,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 ); @@ -541,7 +541,7 @@ static int createMQTTConnectionWithBroker( NetworkContext_t * pNetworkContext, connackProperties.maxPacketSize = MQTT_MAX_PACKET_SIZE; MQTTPropBuilder_t propBuffer = {0} ; - result = MQTT_DeserializeConnack( &connackProperties, &incomingPacket, &sessionPresent, &propBuffer ); + result = MQTT_DeserializeAck( &incomingPacket, NULL, &sessionPresent, NULL, 0, MQTT_MAX_PACKET_SIZE, NULL, &connackProperties ); if( result != MQTTSuccess ) { @@ -878,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 ); @@ -900,37 +900,18 @@ static void mqttProcessIncomingPacket( NetworkContext_t * pNetworkContext, if( ( incomingPacket.type & 0xf0 ) == MQTT_PACKET_TYPE_PUBLISH ) { - result = MQTT_DeserializePublish( &incomingPacket, &packetId, &publishInfo , NULL, MQTT_MAX_PACKET_SIZE); + result = MQTT_DeserializePublish( &incomingPacket, &packetId, &publishInfo , NULL, MQTT_MAX_PACKET_SIZE, 0); assert( result == MQTTSuccess ); /* Process incoming Publish message. */ mqttProcessIncomingPublish( &publishInfo, packetId ); } - else if( ( incomingPacket.type == MQTT_PACKET_TYPE_SUBACK ) || ( incomingPacket.type == MQTT_PACKET_TYPE_UNSUBACK ) ) + else { MQTTReasonCodeInfo_t reasonCodes ; - result = MQTT_DeserializeSuback( &reasonCodes, &incomingPacket, &packetId, NULL, MQTT_MAX_PACKET_SIZE ); + 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 ); - } - else if( (incomingPacket.type == MQTT_PACKET_TYPE_PUBACK) || - (incomingPacket.type == MQTT_PACKET_TYPE_PUBREC) || - (incomingPacket.type == MQTT_PACKET_TYPE_PUBREL) || - (incomingPacket.type == MQTT_PACKET_TYPE_PUBCOMP) ) - { - MQTTReasonCodeInfo_t reasonCode ; - result = MQTT_DeserializePublishAck( &incomingPacket, &packetId, &reasonCode, 0 , MQTT_MAX_PACKET_SIZE, NULL ); - assert( result == MQTTSuccess ); - /* Process the response. */ - mqttProcessResponse( &incomingPacket, packetId ); - } - else - { - result = MQTT_DeserializePing(&incomingPacket); - assert( result == MQTTSuccess ); /* Process the response. */ mqttProcessResponse( &incomingPacket, packetId ); } From 0f6d7dec53533ea046a30051190231657125c541 Mon Sep 17 00:00:00 2001 From: blipbloping Date: Wed, 28 May 2025 11:43:54 +0000 Subject: [PATCH 25/26] Point MQTT submodule pointer to the latest commit --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 69be6fb6f1..994d11f860 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 69be6fb6f1e11d959df5209c778765b38bb8e273 +Subproject commit 994d11f860fae2e97fccd92b442e74982da73a04 From d5a65ed139accfc02a6847924dd5185d51bf9e9e Mon Sep 17 00:00:00 2001 From: blipbloping Date: Wed, 28 May 2025 13:13:19 +0000 Subject: [PATCH 26/26] Update coreMQTT submodule pointer --- libraries/standard/coreMQTT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/standard/coreMQTT b/libraries/standard/coreMQTT index 994d11f860..baaec2b339 160000 --- a/libraries/standard/coreMQTT +++ b/libraries/standard/coreMQTT @@ -1 +1 @@ -Subproject commit 994d11f860fae2e97fccd92b442e74982da73a04 +Subproject commit baaec2b3391e93df82c01f1cbdd41451784db502