You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by bl...@apache.org on 2006/01/15 10:10:44 UTC
svn commit: r369187 - in /xml/security/trunk/c/src/enc/NSS:
NSSCryptoProvider.cpp NSSCryptoProvider.hpp
Author: blautenb
Date: Sun Jan 15 01:07:28 2006
New Revision: 369187
URL: http://svn.apache.org/viewcvs?rev=369187&view=rev
Log:
Support multiple init/de-inits + support default constructor
Modified:
xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.cpp
xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.hpp
Modified: xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.cpp
URL: http://svn.apache.org/viewcvs/xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.cpp?rev=369187&r1=369186&r2=369187&view=diff
==============================================================================
--- xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.cpp (original)
+++ xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.cpp Sun Jan 15 01:07:28 2006
@@ -44,31 +44,42 @@
XSEC_USING_XERCES(ArrayJanitor);
+int NSSCryptoProvider::m_initialised = 0;
+
// --------------------------------------------------------------------------------
// Constructor
// --------------------------------------------------------------------------------
-NSSCryptoProvider::NSSCryptoProvider(const char * dbDir)
-{
+void NSSCryptoProvider::Init(const char * dbDir) {
+
+ ++m_initialised;
- SECStatus s;
+ if (m_initialised > 1)
+ return;
- if (dbDir != NULL)
- s = NSS_Init(dbDir);
- else
- s = NSS_NoDB_Init(NULL);
+ SECStatus s;
- if (s != SECSuccess) {
+ if (dbDir != NULL)
+ s = NSS_Init(dbDir);
+ else
+ s = NSS_NoDB_Init(NULL);
- throw XSECCryptoException(XSECCryptoException::MemoryError,
+ if (s != SECSuccess) {
+
+ throw XSECCryptoException(XSECCryptoException::MemoryError,
"NSSCryptoProvider:NSSCryptoProvider - Error initializing NSS");
- }
+ }
- m_initialised = true;
+}
+
+NSSCryptoProvider::NSSCryptoProvider(const char * dbDir) {
+
+ Init(dbDir);
}
+
// --------------------------------------------------------------------------------
// Empty constructor
// --------------------------------------------------------------------------------
@@ -76,7 +87,7 @@
NSSCryptoProvider::NSSCryptoProvider()
{
- m_initialised = false;
+ Init(NULL);
}
@@ -87,7 +98,7 @@
NSSCryptoProvider::~NSSCryptoProvider()
{
- if (m_initialised) {
+ if (m_initialised == 1) {
PK11_LogoutAll();
@@ -104,6 +115,7 @@
}
}
+ m_initialised--;
}
Modified: xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.hpp
URL: http://svn.apache.org/viewcvs/xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.hpp?rev=369187&r1=369186&r2=369187&view=diff
==============================================================================
--- xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.hpp (original)
+++ xml/security/trunk/c/src/enc/NSS/NSSCryptoProvider.hpp Sun Jan 15 01:07:28 2006
@@ -313,7 +313,8 @@
private:
- bool m_initialised;
+ void Init(const char * dbDir);
+ static int m_initialised;
};