You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ruediger Pluem <rp...@apache.org> on 2008/02/23 11:44:23 UTC

Re: svn commit: r630163 - in /httpd/httpd/trunk/modules/ssl: ssl_engine_config.c ssl_engine_init.c ssl_private.h ssl_scache.c ssl_scache_dbm.c ssl_scache_dc.c ssl_scache_memcache.c ssl_scache_shmcb.c


On 02/22/2008 12:37 PM, jorton@apache.org wrote:
> Author: jorton
> Date: Fri Feb 22 03:36:51 2008
> New Revision: 630163
> 
> URL: http://svn.apache.org/viewvc?rev=630163&view=rev
> Log:
> Re-implement the SSL session cache abstraction using a vtable; first
> step towards use of the ap_provider interface:
> 
> * modules/ssl/ssl_private.h (modssl_sesscache_provider): Add new
>   vtable type.
>   (SSLModConfigRec): Reference the vtable here.
>   Replace all the ssl_scache_* prototypes with provider vtable objects.
> 
> * modules/ssl/ssl_scache.c (ssl_scache_init, ssl_scache_kill, 
>   ssl_scache_retrieve, ssl_scache_store, ssl_scache_remove,
>   ssl_ext_status_hook): Use callbacks from vtable rather than ifdef
>   spaghetti.
> 
> * modules/ssl/ssl_engine_init.c (ssl_init_ctx_session_cache):
>   Only install the OpenSSL callbacks if a vtable is configured.
> 
> * modules/ssl/ssl_engine_config.c (ssl_cmd_SSLSessionCache): Set up
>   vtable pointer.
> 
> * modules/ssl/ssl_scache_dc.c, modules/ssl_scache_mc.c: Adjust to make
>   implementations static, and add vtable definition.
> 
> * modules/ssl_scache_shmcb.c: Likewise; also move the init
>   one-per-process requirement down here.
> 
> * modules/ssl_scache_dbm.c: Likewise; also (temporarily) use a local
>   subpool in the store callback.
> 
> Modified:
>     httpd/httpd/trunk/modules/ssl/ssl_engine_config.c
>     httpd/httpd/trunk/modules/ssl/ssl_engine_init.c
>     httpd/httpd/trunk/modules/ssl/ssl_private.h
>     httpd/httpd/trunk/modules/ssl/ssl_scache.c
>     httpd/httpd/trunk/modules/ssl/ssl_scache_dbm.c
>     httpd/httpd/trunk/modules/ssl/ssl_scache_dc.c
>     httpd/httpd/trunk/modules/ssl/ssl_scache_memcache.c
>     httpd/httpd/trunk/modules/ssl/ssl_scache_shmcb.c
> 

> Modified: httpd/httpd/trunk/modules/ssl/ssl_private.h
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_private.h?rev=630163&r1=630162&r2=630163&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/ssl/ssl_private.h (original)
> +++ httpd/httpd/trunk/modules/ssl/ssl_private.h Fri Feb 22 03:36:51 2008

> @@ -595,38 +611,15 @@
>  void         ssl_scache_remove(server_rec *, UCHAR *, int,
>                                 apr_pool_t *);
>  
> -char        *ssl_scache_id2sz(UCHAR *, int);
> -void         ssl_scache_dbm_init(server_rec *, apr_pool_t *);
> -void         ssl_scache_dbm_kill(server_rec *);
> -BOOL         ssl_scache_dbm_store(server_rec *, UCHAR *, int,
> -                                  time_t, SSL_SESSION *, apr_pool_t *);
> -SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *, UCHAR *, int,
> -                                     apr_pool_t *);
> -void         ssl_scache_dbm_remove(server_rec *, UCHAR *, int,
> -                                   apr_pool_t *);
> -void         ssl_scache_dbm_status(request_rec *r, int flags, apr_pool_t *);
> -
> -void         ssl_scache_shmcb_init(server_rec *, apr_pool_t *);
> -void         ssl_scache_shmcb_kill(server_rec *);
> -BOOL         ssl_scache_shmcb_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *);
> -SSL_SESSION *ssl_scache_shmcb_retrieve(server_rec *, UCHAR *, int);
> -void         ssl_scache_shmcb_remove(server_rec *, UCHAR *, int);
> -void         ssl_scache_shmcb_status(request_rec *r, int flags, apr_pool_t *pool);
> -
> -void         ssl_scache_dc_init(server_rec *, apr_pool_t *);
> -void         ssl_scache_dc_kill(server_rec *);
> -BOOL         ssl_scache_dc_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *);
> -SSL_SESSION *ssl_scache_dc_retrieve(server_rec *, UCHAR *, int);
> -void         ssl_scache_dc_remove(server_rec *, UCHAR *, int);
> -void         ssl_scache_dc_status(request_rec *r, int flags, apr_pool_t *pool);
> +const modssl_sesscache_provider modssl_sesscache_shmcb;
> +const modssl_sesscache_provider modssl_sesscache_dbm;
> +
> +#ifdef HAVE_DISTCACHE
> +const modssl_sesscache_provider modssl_sesscache_dc;
> +#endif

Shouldn't this be

extern const modssl_sesscache_provider modssl_sesscache_shmcb;
extern const modssl_sesscache_provider modssl_sesscache_dbm;

#ifdef HAVE_DISTCACHE
extern const modssl_sesscache_provider modssl_sesscache_dc;
#endif

?

>  
>  #ifdef HAVE_SSL_CACHE_MEMCACHE
> -void         ssl_scache_mc_init(server_rec *, apr_pool_t *);
> -void         ssl_scache_mc_kill(server_rec *);
> -BOOL         ssl_scache_mc_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *);
> -SSL_SESSION *ssl_scache_mc_retrieve(server_rec *, UCHAR *, int, apr_pool_t *);
> -void         ssl_scache_mc_remove(server_rec *, UCHAR *, int);
> -void         ssl_scache_mc_status(request_rec *r, int flags, apr_pool_t *pool);
> +const modssl_sesscache_provider modssl_sesscache_mc;

Shouldn't this be

extern const modssl_sesscache_provider modssl_sesscache_mc;

?

Regards

RĂ¼diger