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; \
|
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)
|
apr_status_t ssl_init_ModuleKill(void *data)
|
||||||
{
|
{
|
||||||
SSLSrvConfigRec *sc;
|
SSLSrvConfigRec *sc;
|
||||||
@@ -1139,22 +1170,11 @@ apr_status_t ssl_init_ModuleKill(void *data)
|
|||||||
* in the per-server configurations
|
* in the per-server configurations
|
||||||
*/
|
*/
|
||||||
for (s = base_server; s; s = s->next) {
|
for (s = base_server; s; s = s->next) {
|
||||||
int i;
|
|
||||||
sc = mySrvConfig(s);
|
sc = mySrvConfig(s);
|
||||||
|
|
||||||
for (i=0; i < SSL_AIDX_MAX; i++) {
|
ssl_init_ctx_cleanup_proxy(sc->proxy);
|
||||||
MODSSL_CFG_ITEM_FREE(X509_free,
|
|
||||||
sc->server->pks->certs[i]);
|
|
||||||
|
|
||||||
MODSSL_CFG_ITEM_FREE(EVP_PKEY_free,
|
ssl_init_ctx_cleanup_server(sc->server);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -162,6 +162,7 @@
|
|||||||
#define sk_X509_num sk_num
|
#define sk_X509_num sk_num
|
||||||
#define sk_X509_value (X509 *)sk_value
|
#define sk_X509_value (X509 *)sk_value
|
||||||
#define sk_X509_INFO_value (X509_INFO *)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_num sk_num
|
||||||
#define sk_X509_INFO_new_null sk_new_null
|
#define sk_X509_INFO_new_null sk_new_null
|
||||||
#define sk_X509_NAME_num sk_num
|
#define sk_X509_NAME_num sk_num
|
||||||
|
Reference in New Issue
Block a user