X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..refs/heads/master:/OSX/libsecurity_cdsa_plugin/lib/cssmplugin.cpp diff --git a/OSX/libsecurity_cdsa_plugin/lib/cssmplugin.cpp b/OSX/libsecurity_cdsa_plugin/lib/cssmplugin.cpp index c8680c4b..c1c7e7c6 100644 --- a/OSX/libsecurity_cdsa_plugin/lib/cssmplugin.cpp +++ b/OSX/libsecurity_cdsa_plugin/lib/cssmplugin.cpp @@ -27,6 +27,7 @@ #include #include #include +#include "LegacyAPICounts.h" ModuleNexus CssmPlugin::sessionMap; @@ -54,10 +55,13 @@ void CssmPlugin::moduleLoad(const Guid &cssmGuid, const Guid &moduleGuid, const ModuleCallback &newCallback) { - if (mLoaded) + static dispatch_once_t onceToken; + countLegacyAPI(&onceToken, "CssmPlugin::moduleLoad"); + if (mLoaded) { CssmError::throwMe(CSSM_ERRCODE_INTERNAL_ERROR); - - mMyGuid = moduleGuid; + } + + mMyGuid = moduleGuid; // let the implementation know that we're loading this->load(); @@ -78,12 +82,16 @@ void CssmPlugin::moduleUnload(const Guid &cssmGuid, const Guid &moduleGuid, const ModuleCallback &oldCallback) { + // These are called from the public pluginspi.h + static dispatch_once_t onceToken; + countLegacyAPI(&onceToken, "CssmPlugin::moduleUnload"); // check the callback vector - if (!mLoaded || oldCallback != mCallback) + if (!mLoaded || oldCallback != mCallback) { CssmError::throwMe(CSSM_ERRCODE_INTERNAL_ERROR); + } // tell our subclass that we're closing down - this->unload(); + this->unload(); // commit closure mLoaded = false; @@ -108,12 +116,14 @@ void CssmPlugin::moduleAttach(CSSM_MODULE_HANDLE theHandle, const CSSM_UPCALLS &upcalls, CSSM_MODULE_FUNCS_PTR &funcTbl) { + static dispatch_once_t onceToken; + countLegacyAPI(&onceToken, "CssmPlugin::moduleAttach"); // basic (in)sanity checks if (moduleGuid != mMyGuid) CssmError::throwMe(CSSM_ERRCODE_INVALID_GUID); // make the new session object, hanging in thin air - auto_ptr session(this->makeSession(theHandle, + unique_ptr session(this->makeSession(theHandle, version, subserviceId, subserviceType, attachFlags, @@ -140,6 +150,8 @@ void CssmPlugin::moduleAttach(CSSM_MODULE_HANDLE theHandle, // void CssmPlugin::moduleDetach(CSSM_MODULE_HANDLE handle) { + static dispatch_once_t onceToken; + countLegacyAPI(&onceToken, "CssmPlugin::moduleDetach"); // locate the plugin and hold the sessionMapLock PluginSession *session; {