From: Doug MacEachern Date: Fri, 29 Mar 2002 01:56:40 +0000 (+0000) Subject: inititialize and merge proxy config X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e92b445254ab322146538fff7e380d56e1b500ab;p=thirdparty%2Fapache%2Fhttpd.git inititialize and merge proxy config git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/ssl@94279 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/ssl_engine_config.c b/ssl_engine_config.c index 3db40f4855e..74b73720f72 100644 --- a/ssl_engine_config.c +++ b/ssl_engine_config.c @@ -162,6 +162,22 @@ static void modssl_ctx_init(modssl_ctx_t *mctx) mctx->auth.verify_mode = SSL_CVERIFY_UNSET; } +static void modssl_ctx_init_proxy(SSLSrvConfigRec *sc, + apr_pool_t *p) +{ + modssl_ctx_t *mctx; + + mctx = sc->proxy = apr_palloc(p, sizeof(*sc->proxy)); + + modssl_ctx_init(mctx); + + mctx->pkp = apr_palloc(p, sizeof(*mctx->pkp)); + + mctx->pkp->cert_file = NULL; + mctx->pkp->cert_path = NULL; + mctx->pkp->certs = NULL; +} + static void modssl_ctx_init_server(SSLSrvConfigRec *sc, apr_pool_t *p) { @@ -200,6 +216,8 @@ void *ssl_config_server_create(apr_pool_t *p, server_rec *s) sc->log_level = SSL_LOG_NONE; sc->session_cache_timeout = UNSET; + modssl_ctx_init_proxy(sc, p); + modssl_ctx_init_server(sc, p); return sc; @@ -232,6 +250,16 @@ static void modssl_ctx_cfg_merge(modssl_ctx_t *base, cfgMerge(auth.verify_mode, SSL_CVERIFY_UNSET); } +static void modssl_ctx_cfg_merge_proxy(modssl_ctx_t *base, + modssl_ctx_t *add, + modssl_ctx_t *mrg) +{ + modssl_ctx_cfg_merge(base, add, mrg); + + cfgMergeString(pkp->cert_file); + cfgMergeString(pkp->cert_path); +} + static void modssl_ctx_cfg_merge_server(modssl_ctx_t *base, modssl_ctx_t *add, modssl_ctx_t *mrg) @@ -255,6 +283,8 @@ void *ssl_config_server_merge(apr_pool_t *p, void *basev, void *addv) SSLSrvConfigRec *add = (SSLSrvConfigRec *)addv; SSLSrvConfigRec *mrg = (SSLSrvConfigRec *)apr_palloc(p, sizeof(*mrg)); + modssl_ctx_init_proxy(mrg, p); + modssl_ctx_init_server(mrg, p); cfgMerge(mc, NULL); @@ -263,6 +293,8 @@ void *ssl_config_server_merge(apr_pool_t *p, void *basev, void *addv) cfgMerge(log_level, SSL_LOG_NONE); cfgMergeInt(session_cache_timeout); + modssl_ctx_cfg_merge_proxy(base->proxy, add->proxy, mrg->proxy); + modssl_ctx_cfg_merge_server(base->server, add->server, mrg->server); return mrg;