static void nss_dbm_mdSession_Close ( NSSCKMDSession *mdSession, NSSCKFWSession *fwSession, NSSCKMDToken *mdToken, NSSCKFWToken *fwToken, NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance ) { nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; struct nss_dbm_dbt_node *w; /* Lock */ { if( CKR_OK != NSSCKFWMutex_Lock(session->list_lock) ) { return; } w = session->session_objects; session->session_objects = (struct nss_dbm_dbt_node *)NULL; /* sanity */ (void)NSSCKFWMutex_Unlock(session->list_lock); } for( ; (struct nss_dbm_dbt_node *)NULL != w; w = w->next ) { (void)nss_dbm_db_delete_object(w->dbt); } }
static CK_RV nss_dbm_mdObject_Destroy ( NSSCKMDObject *mdObject, NSSCKFWObject *fwObject, NSSCKMDSession *mdSession, NSSCKFWSession *fwSession, NSSCKMDToken *mdToken, NSSCKFWToken *fwToken, NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance ) { nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; return nss_dbm_db_delete_object(object->handle); }