mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
cleanup the proxy context
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94288 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -1118,6 +1118,37 @@ void ssl_init_Child(apr_pool_t *p, server_rec *s)
|
||||
item = NULL; \
|
||||
}
|
||||
|
||||
static void ssl_init_ctx_cleanup(modssl_ctx_t *mctx)
|
||||
{
|
||||
MODSSL_CFG_ITEM_FREE(X509_STORE_free, mctx->crl);
|
||||
|
||||
MODSSL_CFG_ITEM_FREE(SSL_CTX_free, mctx->ssl_ctx);
|
||||
}
|
||||
|
||||
static void ssl_init_ctx_cleanup_proxy(modssl_ctx_t *mctx)
|
||||
{
|
||||
ssl_init_ctx_cleanup(mctx);
|
||||
|
||||
if (mctx->pkp->certs) {
|
||||
sk_X509_INFO_pop_free(mctx->pkp->certs, X509_INFO_free);
|
||||
}
|
||||
}
|
||||
|
||||
static void ssl_init_ctx_cleanup_server(modssl_ctx_t *mctx)
|
||||
{
|
||||
int i;
|
||||
|
||||
ssl_init_ctx_cleanup(mctx);
|
||||
|
||||
for (i=0; i < SSL_AIDX_MAX; i++) {
|
||||
MODSSL_CFG_ITEM_FREE(X509_free,
|
||||
mctx->pks->certs[i]);
|
||||
|
||||
MODSSL_CFG_ITEM_FREE(EVP_PKEY_free,
|
||||
mctx->pks->keys[i]);
|
||||
}
|
||||
}
|
||||
|
||||
apr_status_t ssl_init_ModuleKill(void *data)
|
||||
{
|
||||
SSLSrvConfigRec *sc;
|
||||
@@ -1139,22 +1170,11 @@ apr_status_t ssl_init_ModuleKill(void *data)
|
||||
* in the per-server configurations
|
||||
*/
|
||||
for (s = base_server; s; s = s->next) {
|
||||
int i;
|
||||
sc = mySrvConfig(s);
|
||||
|
||||
for (i=0; i < SSL_AIDX_MAX; i++) {
|
||||
MODSSL_CFG_ITEM_FREE(X509_free,
|
||||
sc->server->pks->certs[i]);
|
||||
ssl_init_ctx_cleanup_proxy(sc->proxy);
|
||||
|
||||
MODSSL_CFG_ITEM_FREE(EVP_PKEY_free,
|
||||
sc->server->pks->keys[i]);
|
||||
}
|
||||
|
||||
MODSSL_CFG_ITEM_FREE(X509_STORE_free,
|
||||
sc->server->crl);
|
||||
|
||||
MODSSL_CFG_ITEM_FREE(SSL_CTX_free,
|
||||
sc->server->ssl_ctx);
|
||||
ssl_init_ctx_cleanup_server(sc->server);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -162,6 +162,7 @@
|
||||
#define sk_X509_num sk_num
|
||||
#define sk_X509_value (X509 *)sk_value
|
||||
#define sk_X509_INFO_value (X509_INFO *)sk_value
|
||||
#define sk_X509_INFO_pop_free sk_pop_free
|
||||
#define sk_X509_INFO_num sk_num
|
||||
#define sk_X509_INFO_new_null sk_new_null
|
||||
#define sk_X509_NAME_num sk_num
|
||||
|
Reference in New Issue
Block a user