static FleetProvisioningStatus_t consumeIfMatch()

in source/fleet_provisioning.c [568:604]


static FleetProvisioningStatus_t consumeIfMatch( const char ** pBufferCursor,
                                                 uint16_t * pRemainingLength,
                                                 const char * matchString,
                                                 uint16_t matchLength )
{
    FleetProvisioningStatus_t status = FleetProvisioningError;
    int32_t cmpVal = -1;

    assert( pBufferCursor != NULL );
    assert( *pBufferCursor != NULL );
    assert( pRemainingLength != NULL );
    assert( matchString != NULL );

    if( *pRemainingLength < matchLength )
    {
        status = FleetProvisioningNoMatch;
    }
    else
    {
        cmpVal = strncmp( *pBufferCursor,
                          matchString,
                          ( size_t ) matchLength );

        if( cmpVal != 0 )
        {
            status = FleetProvisioningNoMatch;
        }
        else
        {
            status = FleetProvisioningSuccess;
            *pBufferCursor += matchLength;
            *pRemainingLength -= matchLength;
        }
    }

    return status;
}