diff options
author | rcritten <> | 2008-07-16 15:15:39 +0000 |
---|---|---|
committer | rcritten <> | 2008-07-16 15:15:39 +0000 |
commit | d26e83ac8cecd0e9c29991cb9c673a4487f4ec81 (patch) | |
tree | cfb624def0b66adf13b37f297158adb6d5b33b6d | |
parent | 503b4dfb861a4d3c41936cc9252817b06d865b69 (diff) | |
download | mod_nss-d26e83ac8cecd0e9c29991cb9c673a4487f4ec81.tar.gz mod_nss-d26e83ac8cecd0e9c29991cb9c673a4487f4ec81.tar.xz mod_nss-d26e83ac8cecd0e9c29991cb9c673a4487f4ec81.zip |
Restore moduleKill function so that NSS remains initialized during the
entire configuration state. Other modules were relying on mod_nss
leaving NSS initialized.
453508
-rw-r--r-- | nss_engine_init.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/nss_engine_init.c b/nss_engine_init.c index ed34ba1..fc3bd25 100644 --- a/nss_engine_init.c +++ b/nss_engine_init.c @@ -315,6 +315,13 @@ int nss_init_Module(apr_pool_t *p, apr_pool_t *plog, mc->nInitCount++; + /* + * Let us cleanup on restarts and exists + */ + apr_pool_cleanup_register(p, base_server, + nss_init_ModuleKill, + apr_pool_cleanup_null); + mc->ptemp = ptemp; /* @@ -491,9 +498,6 @@ int nss_init_Module(apr_pool_t *p, apr_pool_t *plog, */ nss_init_ConfigureServer(s, p, ptemp, sc); } - - nss_init_ChildKill(base_server); - nss_init_ModuleKill(base_server); } /* @@ -1144,12 +1148,16 @@ void nss_init_Child(apr_pool_t *p, server_rec *base_server) apr_status_t nss_init_ModuleKill(void *data) { server_rec *base_server = (server_rec *)data; + SSLModConfigRec *mc = myModConfig(base_server); ap_log_error(APLOG_MARK, APLOG_INFO, 0, base_server, "Shutting down SSL Session ID Cache"); SSL_ShutdownServerSessionIDCache(); + if (mc->nInitCount == 1) + nss_init_ChildKill(base_server); + /* NSS_Shutdown() gets called in nss_init_ChildKill */ return APR_SUCCESS; } |