timeout += modssl_session_get_time(session);
- rc = ssl_scache_store(s, id, idlen, timeout, session);
+ rc = ssl_scache_store(s, id, idlen, timeout, session, conn->pool);
ssl_session_log(s, "SET", id, idlen,
rc == TRUE ? "OK" : "BAD",
id = SSL_SESSION_get_session_id(session);
idlen = SSL_SESSION_get_session_id_length(session);
- ssl_scache_remove(s, id, idlen);
+ /* TODO: Do we need a temp pool here, or are we always shutting down? */
+ ssl_scache_remove(s, id, idlen, sc->mc->pPool);
ssl_session_log(s, "REM", id, idlen,
"OK", "dead", 0);
void ssl_scache_init(server_rec *, apr_pool_t *);
void ssl_scache_status_register(apr_pool_t *p);
void ssl_scache_kill(server_rec *);
-BOOL ssl_scache_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *);
+BOOL ssl_scache_store(server_rec *, UCHAR *, int,
+ time_t, SSL_SESSION *, apr_pool_t *);
SSL_SESSION *ssl_scache_retrieve(server_rec *, UCHAR *, int, apr_pool_t *);
-void ssl_scache_remove(server_rec *, UCHAR *, int);
+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 *);
-SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *, UCHAR *, int);
-void ssl_scache_dbm_remove(server_rec *, UCHAR *, int);
-void ssl_scache_dbm_status(request_rec *r, int flags, apr_pool_t *pool);
+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 *);
return;
}
-BOOL ssl_scache_store(server_rec *s, UCHAR *id, int idlen, time_t expiry, SSL_SESSION *sess)
+BOOL ssl_scache_store(server_rec *s, UCHAR *id, int idlen,
+ time_t expiry, SSL_SESSION *sess,
+ apr_pool_t *p)
{
SSLModConfigRec *mc = myModConfig(s);
BOOL rv = FALSE;
if (mc->nSessionCacheMode == SSL_SCMODE_DBM)
- rv = ssl_scache_dbm_store(s, id, idlen, expiry, sess);
+ rv = ssl_scache_dbm_store(s, id, idlen, expiry, sess, p);
else if (mc->nSessionCacheMode == SSL_SCMODE_SHMCB)
rv = ssl_scache_shmcb_store(s, id, idlen, expiry, sess);
#ifdef HAVE_DISTCACHE
SSL_SESSION *sess = NULL;
if (mc->nSessionCacheMode == SSL_SCMODE_DBM)
- sess = ssl_scache_dbm_retrieve(s, id, idlen);
+ sess = ssl_scache_dbm_retrieve(s, id, idlen, p);
else if (mc->nSessionCacheMode == SSL_SCMODE_SHMCB)
sess = ssl_scache_shmcb_retrieve(s, id, idlen);
#ifdef HAVE_DISTCACHE
return sess;
}
-void ssl_scache_remove(server_rec *s, UCHAR *id, int idlen)
+void ssl_scache_remove(server_rec *s, UCHAR *id, int idlen,
+ apr_pool_t *p)
{
SSLModConfigRec *mc = myModConfig(s);
if (mc->nSessionCacheMode == SSL_SCMODE_DBM)
- ssl_scache_dbm_remove(s, id, idlen);
+ ssl_scache_dbm_remove(s, id, idlen, p);
else if (mc->nSessionCacheMode == SSL_SCMODE_SHMCB)
ssl_scache_shmcb_remove(s, id, idlen);
#ifdef HAVE_DISTCACHE
return;
}
-BOOL ssl_scache_dbm_store(server_rec *s, UCHAR *id, int idlen, time_t expiry, SSL_SESSION *sess)
+BOOL ssl_scache_dbm_store(server_rec *s, UCHAR *id, int idlen,
+ time_t expiry, SSL_SESSION *sess,
+ apr_pool_t *p)
{
SSLModConfigRec *mc = myModConfig(s);
apr_dbm_t *dbm;
/* and store it to the DBM file */
ssl_mutex_on(s);
if ((rv = apr_dbm_open(&dbm, mc->szSessionCacheDataFile,
- APR_DBM_RWCREATE, SSL_DBM_FILE_MODE, mc->pPool)) != APR_SUCCESS) {
+ APR_DBM_RWCREATE, SSL_DBM_FILE_MODE, p)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, s,
"Cannot open SSLSessionCache DBM file `%s' for writing "
"(store)",
return TRUE;
}
-SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *s, UCHAR *id, int idlen)
+SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *s, UCHAR *id, int idlen,
+ apr_pool_t *p)
{
SSLModConfigRec *mc = myModConfig(s);
apr_dbm_t *dbm;
*/
ssl_mutex_on(s);
if ((rc = apr_dbm_open(&dbm, mc->szSessionCacheDataFile,
- APR_DBM_RWCREATE, SSL_DBM_FILE_MODE, mc->pPool)) != APR_SUCCESS) {
+ APR_DBM_RWCREATE, SSL_DBM_FILE_MODE, p)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rc, s,
"Cannot open SSLSessionCache DBM file `%s' for reading "
"(fetch)",
/* make sure the stuff is still not expired */
now = time(NULL);
if (expiry <= now) {
- ssl_scache_dbm_remove(s, id, idlen);
+ ssl_scache_dbm_remove(s, id, idlen, p);
return NULL;
}
return sess;
}
-void ssl_scache_dbm_remove(server_rec *s, UCHAR *id, int idlen)
+void ssl_scache_dbm_remove(server_rec *s, UCHAR *id, int idlen,
+ apr_pool_t *p)
{
SSLModConfigRec *mc = myModConfig(s);
apr_dbm_t *dbm;
/* and delete it from the DBM file */
ssl_mutex_on(s);
if ((rv = apr_dbm_open(&dbm, mc->szSessionCacheDataFile,
- APR_DBM_RWCREATE, SSL_DBM_FILE_MODE, mc->pPool)) != APR_SUCCESS) {
+ APR_DBM_RWCREATE, SSL_DBM_FILE_MODE, p)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, s,
"Cannot open SSLSessionCache DBM file `%s' for writing "
"(delete)",