- Timestamp:
- Jun 9, 2016, 7:52:23 PM (6 years ago)
- Branches:
- asyncio, debian/master, debian/stretch-backports, master, proxy-ticket, upstream
- Children:
- aa68232
- Parents:
- 3e22b82
- Location:
- src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/gnutls_cache.c
r3e22b82 re809fb30 240 240 } 241 241 242 int mc_cache_store_generic(server_rec *s, gnutls_datum_t key,243 gnutls_datum_t data, apr_time_t expiry)242 static int mc_cache_store_generic(server_rec *s, gnutls_datum_t key, 243 gnutls_datum_t data, apr_time_t expiry) 244 244 { 245 245 apr_uint32_t timeout = apr_time_sec(expiry - apr_time_now()); … … 307 307 } 308 308 309 gnutls_datum_t mc_cache_fetch_generic(mgs_handle_t *ctxt, gnutls_datum_t key) 309 static gnutls_datum_t mc_cache_fetch_generic(mgs_handle_t *ctxt, 310 gnutls_datum_t key) 310 311 { 311 312 gnutls_datum_t data = {NULL, 0}; … … 434 435 } 435 436 436 gnutls_datum_t dbm_cache_fetch(mgs_handle_t *ctxt, gnutls_datum_t key)437 static gnutls_datum_t dbm_cache_fetch(mgs_handle_t *ctxt, gnutls_datum_t key) 437 438 { 438 439 gnutls_datum_t data = {NULL, 0}; … … 512 513 } 513 514 514 int dbm_cache_store(server_rec *s, gnutls_datum_t key,515 gnutls_datum_t data, apr_time_t expiry)515 static int dbm_cache_store(server_rec *s, gnutls_datum_t key, 516 gnutls_datum_t data, apr_time_t expiry) 516 517 { 517 518 mgs_srvconf_rec *sc = (mgs_srvconf_rec *) … … 696 697 } 697 698 698 if (sc->cache_type == mgs_cache_dbm 699 || sc->cache_type == mgs_cache_gdbm) { 699 sc->cache = apr_palloc(p, sizeof(struct mgs_cache)); 700 if (sc->cache_type == mgs_cache_dbm || sc->cache_type == mgs_cache_gdbm) 701 { 702 sc->cache->store = dbm_cache_store; 703 sc->cache->fetch = dbm_cache_fetch; 700 704 return dbm_cache_post_config(p, s, sc); 701 705 } 706 #if HAVE_APR_MEMCACHE 707 else if (sc->cache_type == mgs_cache_memcache) 708 { 709 sc->cache->store = mc_cache_store_generic; 710 sc->cache->fetch = mc_cache_fetch_generic; 711 } 712 #endif 702 713 703 714 return APR_SUCCESS; -
src/gnutls_cache.h
r3e22b82 re809fb30 52 52 53 53 /* 54 * EXPERIMENTAL: Make DBM cache available for OCSP caching. To be 55 * replaced with properly configurable caching that can also use 56 * memcached later. 54 * Generic object cache functions, used for OCSP caching 57 55 */ 58 #include <apr_dbm.h> 59 int dbm_cache_store(server_rec *s, gnutls_datum_t key, 60 gnutls_datum_t data, apr_time_t expiry); 61 gnutls_datum_t dbm_cache_fetch(mgs_handle_t *ctxt, gnutls_datum_t key); 62 int mc_cache_store_generic(server_rec *s, gnutls_datum_t key, 63 gnutls_datum_t data, apr_time_t expiry); 64 gnutls_datum_t mc_cache_fetch_generic(mgs_handle_t *ctxt, gnutls_datum_t key); 56 typedef int (*cache_store_func)(server_rec *s, gnutls_datum_t key, 57 gnutls_datum_t data, apr_time_t expiry); 58 typedef gnutls_datum_t (*cache_fetch_func)(mgs_handle_t *ctxt, 59 gnutls_datum_t key); 60 struct mgs_cache { 61 cache_store_func store; 62 cache_fetch_func fetch; 63 }; 65 64 66 65 #endif /** __MOD_GNUTLS_CACHE_H__ */ -
src/gnutls_config.c
r3e22b82 re809fb30 965 965 sc->cache_config = NULL; 966 966 sc->cache_mutex = NULL; 967 sc->cache = NULL; 967 968 sc->tickets = GNUTLS_ENABLED_UNSET; 968 969 sc->priorities = NULL; -
src/gnutls_hooks.c
r3e22b82 re809fb30 376 376 sc->cache_timeout = sc_base->cache_timeout; 377 377 sc->cache_mutex = sc_base->cache_mutex; 378 sc->cache = sc_base->cache; 378 379 379 380 rv = mgs_load_files(pconf, s); -
src/gnutls_ocsp.c
r3e22b82 re809fb30 325 325 ap_get_module_config(s->module_config, &gnutls_module); 326 326 327 if (sc->cache _type != mgs_cache_dbm && sc->cache_type != mgs_cache_gdbm)328 { 329 /* experimental OCSP cache requires DBM cache*/327 if (sc->cache == NULL) 328 { 329 /* OCSP caching requires a cache. */ 330 330 return APR_ENOTIMPL; 331 331 } … … 400 400 expiry -= sc->ocsp_grace_time; 401 401 402 int r = dbm_cache_store(s, fingerprint, resp, expiry);402 int r = sc->cache->store(s, fingerprint, resp, expiry); 403 403 /* destroy pool, and original copy of the OCSP response with it */ 404 404 apr_pool_destroy(tmp); … … 419 419 { 420 420 mgs_handle_t *ctxt = (mgs_handle_t *) ptr; 421 if (ctxt->sc->cache == NULL) 422 { 423 /* OCSP caching requires a cache. */ 424 return GNUTLS_E_NO_CERTIFICATE_STATUS; 425 } 421 426 422 427 gnutls_datum_t fingerprint = … … 426 431 return GNUTLS_E_NO_CERTIFICATE_STATUS; 427 432 428 *ocsp_response = dbm_cache_fetch(ctxt, fingerprint);433 *ocsp_response = ctxt->sc->cache->fetch(ctxt, fingerprint); 429 434 if (ocsp_response->size == 0) 430 435 { … … 454 459 455 460 /* retry reading from cache */ 456 *ocsp_response = dbm_cache_fetch(ctxt, fingerprint);461 *ocsp_response = ctxt->sc->cache->fetch(ctxt, fingerprint); 457 462 if (ocsp_response->size == 0) 458 463 {
Note: See TracChangeset
for help on using the changeset viewer.