From: Doug MacEachern Date: Thu, 29 Nov 2001 06:15:01 +0000 (+0000) Subject: fix for last change that removed ssl_util_getmodconfig(): X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=93c1c643814247ef6f7f10f218d7078d494f79ec;p=apache fix for last change that removed ssl_util_getmodconfig(): go back to using s->process->pool userdata, but just to store the global module config during startup so we only create _one_ SSLModConfigRec. (didn't realize this function was called in both ssl_init_Module and ssl_config_server_create) PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92235 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/mod_ssl.h b/modules/ssl/mod_ssl.h index 93510e552c..050a1ed6ca 100644 --- a/modules/ssl/mod_ssl.h +++ b/modules/ssl/mod_ssl.h @@ -567,7 +567,7 @@ typedef struct { extern module AP_MODULE_DECLARE_DATA ssl_module; /* configuration handling */ -void ssl_config_global_create(server_rec *); +SSLModConfigRec *ssl_config_global_create(server_rec *); void ssl_config_global_fix(SSLModConfigRec *); BOOL ssl_config_global_isfixed(SSLModConfigRec *); void *ssl_config_server_create(apr_pool_t *, server_rec *); diff --git a/modules/ssl/ssl_engine_config.c b/modules/ssl/ssl_engine_config.c index 2eb0327c8b..ceadc62fc0 100644 --- a/modules/ssl/ssl_engine_config.c +++ b/modules/ssl/ssl_engine_config.c @@ -68,10 +68,15 @@ ** _________________________________________________________________ */ -void ssl_config_global_create(server_rec *s) +#define SSL_MOD_CONFIG_KEY "ssl_module" + +SSLModConfigRec *ssl_config_global_create(server_rec *s) { apr_pool_t *pPool; - SSLModConfigRec *mc = myModConfig(s); + SSLModConfigRec *mc; + + apr_pool_userdata_get((void **)&mc, SSL_MOD_CONFIG_KEY, + s->process->pool); if (mc == NULL) { /* @@ -106,16 +111,11 @@ void ssl_config_global_create(server_rec *s) (void)memset(mc->pTmpKeys, 0, SSL_TKPIDX_MAX*sizeof(void *)); - /* - * And push it into Apache's server config recs - */ - while (s) { - SSLSrvConfigRec *sc = mySrvConfig(s); - sc->mc = mc; - s = s->next; - } + apr_pool_userdata_set((void *)mc, SSL_MOD_CONFIG_KEY, + apr_pool_cleanup_null, + s->process->pool); } - return; + return mc; } void ssl_config_global_fix(SSLModConfigRec *mc) @@ -142,9 +142,8 @@ void *ssl_config_server_create(apr_pool_t *p, server_rec *s) { SSLSrvConfigRec *sc; - ssl_config_global_create(s); - sc = apr_palloc(p, sizeof(SSLSrvConfigRec)); + sc->mc = ssl_config_global_create(s); sc->bEnabled = UNSET; sc->szCACertificatePath = NULL; sc->szCACertificateFile = NULL; @@ -194,6 +193,7 @@ void *ssl_config_server_merge(apr_pool_t *p, void *basev, void *addv) SSLSrvConfigRec *add = (SSLSrvConfigRec *)addv; SSLSrvConfigRec *new = (SSLSrvConfigRec *)apr_palloc(p, sizeof(SSLSrvConfigRec)); + cfgMerge(mc, NULL); cfgMergeString(szVHostID); cfgMergeBool(bEnabled); cfgMergeString(szCACertificatePath);