in source/core_mqtt_agent.c [762:791]
static void concludeCommand( const MQTTAgentContext_t * pAgentContext,
MQTTAgentCommand_t * pCommand,
MQTTStatus_t returnCode,
uint8_t * pSubackCodes )
{
bool commandReleased = false;
MQTTAgentReturnInfo_t returnInfo;
( void ) memset( &returnInfo, 0x00, sizeof( MQTTAgentReturnInfo_t ) );
assert( pAgentContext != NULL );
assert( pAgentContext->agentInterface.releaseCommand != NULL );
assert( pCommand != NULL );
returnInfo.returnCode = returnCode;
returnInfo.pSubackCodes = pSubackCodes;
if( pCommand->pCommandCompleteCallback != NULL )
{
pCommand->pCommandCompleteCallback( pCommand->pCmdContext, &returnInfo );
}
commandReleased = pAgentContext->agentInterface.releaseCommand( pCommand );
if( !commandReleased )
{
LogError( ( "Failed to release command %p of type %d.",
( void * ) pCommand,
pCommand->commandType ) );
}
}