FleetProvisioningStatus_t FleetProvisioning_MatchTopic()

in source/fleet_provisioning.c [729:763]


FleetProvisioningStatus_t FleetProvisioning_MatchTopic( const char * pTopic,
                                                        uint16_t topicLength,
                                                        FleetProvisioningTopic_t * pOutApi )
{
    FleetProvisioningStatus_t ret = FleetProvisioningNoMatch;

    if( ( pTopic == NULL ) || ( pOutApi == NULL ) )
    {
        ret = FleetProvisioningBadParameter;
        LogError( ( "Invalid input parameter. pTopic: %p, pOutApi: %p.",
                    ( const void * ) pTopic,
                    ( void * ) pOutApi ) );
    }
    else
    {
        *pOutApi = parseCreateCertificateFromCsrTopic( pTopic, topicLength );

        if( *pOutApi == FleetProvisioningInvalidTopic )
        {
            *pOutApi = parseCreateKeysAndCertificateTopic( pTopic, topicLength );
        }

        if( *pOutApi == FleetProvisioningInvalidTopic )
        {
            *pOutApi = parseRegisterThingTopic( pTopic, topicLength );
        }

        if( *pOutApi != FleetProvisioningInvalidTopic )
        {
            ret = FleetProvisioningSuccess;
        }
    }

    return ret;
}