diff options
author | relyea%netscape.com <devnull@localhost> | 2002-04-26 22:36:07 +0000 |
---|---|---|
committer | relyea%netscape.com <devnull@localhost> | 2002-04-26 22:36:07 +0000 |
commit | 519a0dd312c906a64bab5e2381ea88ee7c610d31 (patch) | |
tree | 86566535a2d79d86dc77e0320469299c985c3a52 | |
parent | 077f44587e3c88fe08c481e7113f2c4c8f84c198 (diff) | |
download | nss-hg-519a0dd312c906a64bab5e2381ea88ee7c610d31.tar.gz |
return error when incomplete shutdown has been detected.
-rw-r--r-- | security/nss/lib/nss/nss.h | 2 | ||||
-rw-r--r-- | security/nss/lib/nss/nssinit.c | 7 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/pk11util.c | 7 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/secmod.h | 2 |
4 files changed, 12 insertions, 6 deletions
diff --git a/security/nss/lib/nss/nss.h b/security/nss/lib/nss/nss.h index aeb07f09b..fa4840e02 100644 --- a/security/nss/lib/nss/nss.h +++ b/security/nss/lib/nss/nss.h @@ -132,7 +132,7 @@ SECStatus NSS_NoDB_Init(const char *configdir); /* * Close the Cert, Key databases. */ -extern void NSS_Shutdown(void); +extern SECStatus NSS_Shutdown(void); /* * set the PKCS #11 strings for the internal token. diff --git a/security/nss/lib/nss/nssinit.c b/security/nss/lib/nss/nssinit.c index 7e4a2d4a0..bb24f8b38 100644 --- a/security/nss/lib/nss/nssinit.c +++ b/security/nss/lib/nss/nssinit.c @@ -454,13 +454,16 @@ NSS_NoDB_Init(const char * configdir) PR_TRUE,PR_TRUE,PR_TRUE,PR_TRUE,PR_TRUE); } -void +SECStatus NSS_Shutdown(void) { + SECStatus rv; + SECOID_Shutdown(); STAN_Shutdown(); - SECMOD_Shutdown(); + rv = SECMOD_Shutdown(); nss_IsInitted = PR_FALSE; + return rv; } diff --git a/security/nss/lib/pk11wrap/pk11util.c b/security/nss/lib/pk11wrap/pk11util.c index f7d2405de..989040ed8 100644 --- a/security/nss/lib/pk11wrap/pk11util.c +++ b/security/nss/lib/pk11wrap/pk11util.c @@ -55,7 +55,8 @@ extern PK11DefaultArrayEntry PK11_DefaultArray[]; extern int num_pk11_default_mechanisms; -void SECMOD_Init() { +void +SECMOD_Init() { /* don't initialize twice */ if (moduleLock) return; @@ -64,7 +65,8 @@ void SECMOD_Init() { } -void SECMOD_Shutdown() { +SECStatus +SECMOD_Shutdown() { /* destroy the lock */ if (moduleLock) { SECMOD_DestroyListLock(moduleLock); @@ -106,6 +108,7 @@ void SECMOD_Shutdown() { PORT_Assert(secmod_PrivateModuleCount == 0); } #endif + return (secmod_PrivateModuleCount == 0) ? SECSuccess : SECFailure; } diff --git a/security/nss/lib/pk11wrap/secmod.h b/security/nss/lib/pk11wrap/secmod.h index 303e3fe58..6e4c4c9b8 100644 --- a/security/nss/lib/pk11wrap/secmod.h +++ b/security/nss/lib/pk11wrap/secmod.h @@ -91,7 +91,7 @@ SECStatus SECMOD_UnloadUserModule(SECMODModule *mod); SECMODModule * SECMOD_CreateModule(char *lib, char *name, char *param, char *nss); -extern void SECMOD_Shutdown(void); +extern SECStatus SECMOD_Shutdown(void); /* Module Management */ |