in source/src/AppCredential.c [194:234]
STATUS destroyCredential(PAppCredential pAppCredential)
{
STATUS retStatus = STATUS_SUCCESS;
StackQueueIterator iterator;
UINT64 data;
CHK(pAppCredential != NULL, STATUS_APP_CREDENTIAL_NULL_ARG);
if (pAppCredential->generatedCertificates != NULL) {
appQueueGetIterator(pAppCredential->generatedCertificates, &iterator);
while (IS_VALID_ITERATOR(iterator)) {
appQueueIteratorGetItem(iterator, &data);
appQueueIteratorNext(&iterator);
freeRtcCertificate((PRtcCertificate) data);
}
CHK_LOG_ERR((appQueueClear(pAppCredential->generatedCertificates, FALSE)));
CHK_LOG_ERR((appQueueFree(pAppCredential->generatedCertificates)));
pAppCredential->generatedCertificates = NULL;
}
if (pAppCredential->credentialType == APP_CREDENTIAL_TYPE_STATIC) {
CHK(freeAppStaticCredentialProvider(&pAppCredential->pCredentialProvider) == STATUS_SUCCESS, STATUS_APP_CREDENTIAL_DESTROY_STATIC);
} else if (pAppCredential->credentialType == APP_CREDENTIAL_TYPE_IOT_CERT) {
CHK(freeAppIotCredentialProvider(&pAppCredential->pCredentialProvider) == STATUS_SUCCESS, STATUS_APP_CREDENTIAL_DESTROY_IOT);
} else if (pAppCredential->credentialType == APP_CREDENTIAL_TYPE_ECS) {
CHK(freeAppEcsCredentialProvider(&pAppCredential->pCredentialProvider) == STATUS_SUCCESS, STATUS_APP_CREDENTIAL_DESTROY_ECS);
} else {
retStatus = STATUS_APP_CREDENTIAL_DESTROY_NA;
}
if (IS_VALID_MUTEX_VALUE(pAppCredential->generateCertLock)) {
MUTEX_FREE(pAppCredential->generateCertLock);
pAppCredential->generateCertLock = INVALID_MUTEX_VALUE;
}
CleanUp:
if (pAppCredential != NULL) {
pAppCredential->credentialType = APP_CREDENTIAL_TYPE_NA;
}
return retStatus;
}