You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by do...@apache.org on 2002/03/29 03:59:27 UTC

cvs commit: httpd-2.0/modules/ssl ssl_engine_init.c ssl_toolkit_compat.h

dougm       02/03/28 18:59:27

  Modified:    modules/ssl ssl_engine_init.c ssl_toolkit_compat.h
  Log:
  cleanup the proxy context
  
  Revision  Changes    Path
  1.88      +33 -13    httpd-2.0/modules/ssl/ssl_engine_init.c
  
  Index: ssl_engine_init.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_init.c,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- ssl_engine_init.c	29 Mar 2002 02:20:58 -0000	1.87
  +++ ssl_engine_init.c	29 Mar 2002 02:59:27 -0000	1.88
  @@ -1118,6 +1118,37 @@
           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 @@
        * 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]);
  -
  -            MODSSL_CFG_ITEM_FREE(EVP_PKEY_free,
  -                                 sc->server->pks->keys[i]);
  -        }
  -
  -        MODSSL_CFG_ITEM_FREE(X509_STORE_free,
  -                             sc->server->crl);
  +        ssl_init_ctx_cleanup_proxy(sc->proxy);
   
  -        MODSSL_CFG_ITEM_FREE(SSL_CTX_free,
  -                             sc->server->ssl_ctx);
  +        ssl_init_ctx_cleanup_server(sc->server);
       }
   
       /*
  
  
  
  1.21      +1 -0      httpd-2.0/modules/ssl/ssl_toolkit_compat.h
  
  Index: ssl_toolkit_compat.h
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_toolkit_compat.h,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- ssl_toolkit_compat.h	27 Mar 2002 22:31:33 -0000	1.20
  +++ ssl_toolkit_compat.h	29 Mar 2002 02:59:27 -0000	1.21
  @@ -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