On 02/22/2008 12:37 PM, [EMAIL PROTECTED] 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