78b00cd
--- httpd-2.2.6/modules/ssl/mod_ssl.c.ssllibver
78b00cd
+++ httpd-2.2.6/modules/ssl/mod_ssl.c
78b00cd
@@ -500,7 +500,7 @@ static void ssl_register_hooks(apr_pool_
78b00cd
     ap_hook_insert_filter (ssl_hook_Insert_Filter, NULL,NULL, APR_HOOK_MIDDLE);
78b00cd
 /*    ap_hook_handler       (ssl_hook_Upgrade,       NULL,NULL, APR_HOOK_MIDDLE); */
78b00cd
 
78b00cd
-    ssl_var_register();
78b00cd
+    ssl_var_register(p);
78b00cd
 
78b00cd
     APR_REGISTER_OPTIONAL_FN(ssl_proxy_enable);
78b00cd
     APR_REGISTER_OPTIONAL_FN(ssl_engine_disable);
78b00cd
--- httpd-2.2.6/modules/ssl/ssl_engine_vars.c.ssllibver
78b00cd
+++ httpd-2.2.6/modules/ssl/ssl_engine_vars.c
12462ec
@@ -58,12 +58,32 @@ static int ssl_is_https(conn_rec *c)
78b00cd
     return sslconn && sslconn->ssl;
78b00cd
 }
78b00cd
 
78b00cd
-void ssl_var_register(void)
78b00cd
+static const char var_interface[] = "mod_ssl/" MOD_SSL_VERSION;
78b00cd
+static char var_library_interface[] = SSL_LIBRARY_TEXT;
78b00cd
+static char *var_library = NULL;
78b00cd
+
78b00cd
+void ssl_var_register(apr_pool_t *p)
78b00cd
 {
12462ec
+    char *cp, *cp2;
12462ec
+
78b00cd
     APR_REGISTER_OPTIONAL_FN(ssl_is_https);
78b00cd
     APR_REGISTER_OPTIONAL_FN(ssl_var_lookup);
78b00cd
     APR_REGISTER_OPTIONAL_FN(ssl_ext_lookup);
78b00cd
-    return;
78b00cd
+
78b00cd
+    /* Perform once-per-process library version determination: */
78b00cd
+    var_library = apr_pstrdup(p, SSL_LIBRARY_DYNTEXT);
78b00cd
+    
78b00cd
+    if ((cp = strchr(var_library, ' ')) != NULL) {
78b00cd
+        *cp = '/';
78b00cd
+        if ((cp2 = strchr(cp, ' ')) != NULL)
78b00cd
+                *cp2 = NUL;
78b00cd
+    }
78b00cd
+
78b00cd
+    if ((cp = strchr(var_library_interface, ' ')) != NULL) {
78b00cd
+        *cp = '/';
78b00cd
+        if ((cp2 = strchr(cp, ' ')) != NULL)
78b00cd
+            *cp2 = NUL;
78b00cd
+    }
78b00cd
 }
78b00cd
 
78b00cd
 /* This function must remain safe to use for a non-SSL connection. */
12462ec
@@ -635,39 +655,17 @@ static void ssl_var_lookup_ssl_cipher_bi
78b00cd
 
78b00cd
 static char *ssl_var_lookup_ssl_version(apr_pool_t *p, char *var)
78b00cd
 {
78b00cd
-    static char interface[] = "mod_ssl/" MOD_SSL_VERSION;
78b00cd
-    static char library_interface[] = SSL_LIBRARY_TEXT;
78b00cd
-    static char *library = NULL;
78b00cd
-    char *result;
78b00cd
-  
78b00cd
-    if (!library) {
78b00cd
-        char *cp, *cp2;
78b00cd
-        library = apr_pstrdup(p, SSL_LIBRARY_DYNTEXT);
78b00cd
-        if ((cp = strchr(library, ' ')) != NULL) {
78b00cd
-            *cp = '/';
78b00cd
-            if ((cp2 = strchr(cp, ' ')) != NULL)
78b00cd
-                *cp2 = NUL;
78b00cd
-        }
78b00cd
-        if ((cp = strchr(library_interface, ' ')) != NULL) {
78b00cd
-            *cp = '/';
78b00cd
-            if ((cp2 = strchr(cp, ' ')) != NULL)
78b00cd
-                *cp2 = NUL;
78b00cd
-        }
78b00cd
-    }
78b00cd
-
78b00cd
     if (strEQ(var, "INTERFACE")) {
78b00cd
-        result = apr_pstrdup(p, interface);
12462ec
+        return apr_pstrdup(p, var_interface);
78b00cd
     }
78b00cd
     else if (strEQ(var, "LIBRARY_INTERFACE")) {
78b00cd
-        result = apr_pstrdup(p, library_interface);
12462ec
+        return apr_pstrdup(p, var_library_interface);
78b00cd
     }
78b00cd
     else if (strEQ(var, "LIBRARY")) {
78b00cd
-        result = apr_pstrdup(p, library);
12462ec
-    }
12462ec
-    else {
12462ec
-        result = NULL;
12462ec
+        return apr_pstrdup(p, var_library);
78b00cd
     }
12462ec
-    return result;
12462ec
+
12462ec
+    return NULL;
12462ec
 }
12462ec
   
12462ec
 
12462ec
--- httpd-2.2.6/modules/ssl/ssl_private.h.ssllibver
12462ec
+++ httpd-2.2.6/modules/ssl/ssl_private.h
12462ec
@@ -648,7 +648,7 @@ void         ssl_die(void);
12462ec
 void         ssl_log_ssl_error(const char *, int, int, server_rec *);
12462ec
 
12462ec
 /**  Variables  */
12462ec
-void         ssl_var_register(void);
12462ec
+void         ssl_var_register(apr_pool_t *p);
12462ec
 char        *ssl_var_lookup(apr_pool_t *, server_rec *, conn_rec *, request_rec *, char *);
12462ec
 const char  *ssl_ext_lookup(apr_pool_t *p, conn_rec *c, int peer, const char *oid);
12462ec