|
|
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 |
|