Commit d89cb0ba authored by Doug MacEachern's avatar Doug MacEachern
Browse files

add ssl_config_server_new function to fold some duplication in server

create/merge and to make sure merge config is fully inititialized


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/ssl@94280 13f79535-47bb-0310-9956-ffa450edef68
parent e92b4452
Loading
Loading
Loading
Loading
+15 −10
Changes for ssl_engine_config.c: 15 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -200,14 +200,11 @@ static void modssl_ctx_init_server(SSLSrvConfigRec *sc,
    memset(mctx->pks->keys, 0, sizeof(mctx->pks->keys));
}

/*
 *  Create per-server SSL configuration
 */
void *ssl_config_server_create(apr_pool_t *p, server_rec *s)
static SSLSrvConfigRec *ssl_config_server_new(apr_pool_t *p)
{
    SSLSrvConfigRec *sc = apr_palloc(p, sizeof(*sc));

    sc->mc                     = ssl_config_global_create(s);
    sc->mc                     = NULL;
    sc->enabled                = UNSET;
    sc->vhost_id               = NULL;  /* set during module init */
    sc->vhost_id_len           = 0;     /* set during module init */
@@ -223,6 +220,18 @@ void *ssl_config_server_create(apr_pool_t *p, server_rec *s)
    return sc;
}

/*
 *  Create per-server SSL configuration
 */
void *ssl_config_server_create(apr_pool_t *p, server_rec *s)
{
    SSLSrvConfigRec *sc = ssl_config_server_new(p);

    sc->mc = ssl_config_global_create(s);

    return sc;
}

#define cfgMerge(el,unset)  mrg->el = (add->el == (unset)) ? base->el : add->el
#define cfgMergeArray(el)   mrg->el = apr_array_append(p, add->el, base->el)
#define cfgMergeString(el)  cfgMerge(el, NULL)
@@ -281,11 +290,7 @@ void *ssl_config_server_merge(apr_pool_t *p, void *basev, void *addv)
{
    SSLSrvConfigRec *base = (SSLSrvConfigRec *)basev;
    SSLSrvConfigRec *add  = (SSLSrvConfigRec *)addv;
    SSLSrvConfigRec *mrg  = (SSLSrvConfigRec *)apr_palloc(p, sizeof(*mrg));

    modssl_ctx_init_proxy(mrg, p);

    modssl_ctx_init_server(mrg, p);
    SSLSrvConfigRec *mrg  = ssl_config_server_new(p);

    cfgMerge(mc, NULL);
    cfgMergeBool(enabled);