summaryrefslogtreecommitdiffstats
path: root/nss_engine_vars.c
diff options
context:
space:
mode:
authorrcritten <>2007-10-18 18:26:21 +0000
committerrcritten <>2007-10-18 18:26:21 +0000
commit0c14c8a219244408ac4d4402a55d9c178fcf705c (patch)
tree529ff83fa940f5656dd4e828f56cfebe140f5aab /nss_engine_vars.c
parent4aa4a80f1758caed8bfa43a286a4c08645c9523d (diff)
downloadmod_nss-0c14c8a219244408ac4d4402a55d9c178fcf705c.tar.gz
mod_nss-0c14c8a219244408ac4d4402a55d9c178fcf705c.tar.xz
mod_nss-0c14c8a219244408ac4d4402a55d9c178fcf705c.zip
If mod_ssl isn't loaded then register the hooks to mod_proxy so we can
do at least secure proxy in front of an unsecure host.
Diffstat (limited to 'nss_engine_vars.c')
-rw-r--r--nss_engine_vars.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/nss_engine_vars.c b/nss_engine_vars.c
index 80480e7..1439a8b 100644
--- a/nss_engine_vars.c
+++ b/nss_engine_vars.c
@@ -46,10 +46,21 @@ static int nss_is_https(conn_rec *c)
return sslconn && sslconn->ssl;
}
+static int ssl_is_https(conn_rec *c) {
+ return nss_is_https(c);
+}
+
void nss_var_register(void)
{
APR_REGISTER_OPTIONAL_FN(nss_is_https);
APR_REGISTER_OPTIONAL_FN(nss_var_lookup);
+
+ /* These can only be registered if mod_ssl is not loaded */
+ if (APR_RETRIEVE_OPTIONAL_FN(ssl_is_https) == NULL)
+ APR_REGISTER_OPTIONAL_FN(ssl_is_https);
+ if (APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup) == NULL)
+ APR_REGISTER_OPTIONAL_FN(ssl_var_lookup);
+
return;
}
@@ -241,6 +252,10 @@ char *nss_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r,
return result;
}
+char *ssl_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, char *var) {
+ return nss_var_lookup(p, s, c, r, var);
+}
+
static char *nss_var_lookup_header(apr_pool_t *p, request_rec *r, const char *name)
{
char *hdr = NULL;