diff --git a/components/aws_iot/coremqtt_agent/integration/inc/subscription_manager.h b/components/aws_iot/coremqtt_agent/integration/inc/subscription_manager.h index 5fd3d66..f16ef1a 100644 --- a/components/aws_iot/coremqtt_agent/integration/inc/subscription_manager.h +++ b/components/aws_iot/coremqtt_agent/integration/inc/subscription_manager.h @@ -99,8 +99,11 @@ bool addSubscription( const char * pcTopicFilterString, * @param[in] pxSubscriptionList The pointer to the subscription list array. * @param[in] pcTopicFilterString Topic filter of subscription. * @param[in] usTopicFilterLength Length of topic filter. + * + * @return `true` if subscription has been removed, `false` if the subscription + * does not exist or deletion failed. */ -void removeSubscription( const char * pcTopicFilterString, +bool removeSubscription( const char * pcTopicFilterString, uint16_t usTopicFilterLength ); /** diff --git a/components/aws_iot/coremqtt_agent/integration/src/subscription_manager.c b/components/aws_iot/coremqtt_agent/integration/src/subscription_manager.c index 9daac2d..b0626b4 100644 --- a/components/aws_iot/coremqtt_agent/integration/src/subscription_manager.c +++ b/components/aws_iot/coremqtt_agent/integration/src/subscription_manager.c @@ -121,9 +121,11 @@ bool addSubscription( const char * pcTopicFilterString, /*-----------------------------------------------------------*/ -void removeSubscription( const char * pcTopicFilterString, +bool removeSubscription( const char * pcTopicFilterString, uint16_t usTopicFilterLength ) { + bool found = false; + if( ( pcTopicFilterString == NULL ) || ( usTopicFilterLength == 0U ) ) { @@ -142,11 +144,14 @@ void removeSubscription( const char * pcTopicFilterString, { if( strncmp( xGlobalSubscriptionList[ lIndex ].pcSubscriptionFilterString, pcTopicFilterString, usTopicFilterLength ) == 0 ) { + found = true; memset( &( xGlobalSubscriptionList[ lIndex ] ), 0x00, sizeof( SubscriptionElement_t ) ); } } } } + + return found; } /*-----------------------------------------------------------*/