1
0
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:
Doug MacEachern
2002-03-29 02:59:27 +00:00
parent 987edc67d2
commit a24fd6a181
2 changed files with 34 additions and 13 deletions

View File

@@ -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);
} }
/* /*

View File

@@ -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