]> granicus.if.org Git - apache/commitdiff
fix for last change that removed ssl_util_getmodconfig():
authorDoug MacEachern <dougm@apache.org>
Thu, 29 Nov 2001 06:15:01 +0000 (06:15 +0000)
committerDoug MacEachern <dougm@apache.org>
Thu, 29 Nov 2001 06:15:01 +0000 (06:15 +0000)
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

modules/ssl/mod_ssl.h
modules/ssl/ssl_engine_config.c

index 93510e552c924927f4fae89df904aa22ea0c0037..050a1ed6ca93d57a2a90d2c08337ef1a4c6f4d3e 100644 (file)
@@ -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 *);
index 2eb0327c8b0394d4d49dab21cde712f48b11cf9b..ceadc62fc0d87a414b6570ef00ed6cc9b379ba08 100644 (file)
 **  _________________________________________________________________
 */
 
-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);