From aad2e44aae94d2302a2a42f3c7d81f65f8918aba Mon Sep 17 00:00:00 2001 From: Bradley Nicholes Date: Wed, 30 Mar 2005 23:25:47 +0000 Subject: [PATCH] Actually use the compare_cache_size value that is being set by LDAPOpCacheEntries. The actual cache_size was previously defaulting to the value of search _cache_size set by LDAPCacheEntries. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@159542 13f79535-47bb-0310-9956-ffa450edef68 --- modules/ldap/util_ldap_cache.c | 1 + modules/ldap/util_ldap_cache.h | 1 + modules/ldap/util_ldap_cache_mgr.c | 14 +++++++++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/ldap/util_ldap_cache.c b/modules/ldap/util_ldap_cache.c index ce95c59b95..e8feca84e6 100644 --- a/modules/ldap/util_ldap_cache.c +++ b/modules/ldap/util_ldap_cache.c @@ -428,6 +428,7 @@ apr_status_t util_ldap_cache_init(apr_pool_t *pool, util_ldap_state_t *st) st->util_ldap_cache = util_ald_create_cache(st, + st->search_cache_size, util_ldap_url_node_hash, util_ldap_url_node_compare, util_ldap_url_node_copy, diff --git a/modules/ldap/util_ldap_cache.h b/modules/ldap/util_ldap_cache.h index 65580f574a..9ba722c7e9 100644 --- a/modules/ldap/util_ldap_cache.h +++ b/modules/ldap/util_ldap_cache.h @@ -174,6 +174,7 @@ unsigned long util_ald_hash_string(int nstr, ...); void util_ald_cache_purge(util_ald_cache_t *cache); util_url_node_t *util_ald_create_caches(util_ldap_state_t *s, const char *url); util_ald_cache_t *util_ald_create_cache(util_ldap_state_t *st, + long cache_size, unsigned long (*hashfunc)(void *), int (*comparefunc)(void *, void *), void * (*copyfunc)(util_ald_cache_t *cache, void *), diff --git a/modules/ldap/util_ldap_cache_mgr.c b/modules/ldap/util_ldap_cache_mgr.c index 092e21f62b..54021a9f37 100644 --- a/modules/ldap/util_ldap_cache_mgr.c +++ b/modules/ldap/util_ldap_cache_mgr.c @@ -179,7 +179,7 @@ void util_ald_cache_purge(util_ald_cache_t *cache) if (!cache) return; - + cache->last_purge = apr_time_now(); cache->npurged = 0; cache->numpurges++; @@ -222,18 +222,21 @@ util_url_node_t *util_ald_create_caches(util_ldap_state_t *st, const char *url) /* create the three caches */ search_cache = util_ald_create_cache(st, + st->search_cache_size, util_ldap_search_node_hash, util_ldap_search_node_compare, util_ldap_search_node_copy, util_ldap_search_node_free, util_ldap_search_node_display); compare_cache = util_ald_create_cache(st, + st->compare_cache_size, util_ldap_compare_node_hash, util_ldap_compare_node_compare, util_ldap_compare_node_copy, util_ldap_compare_node_free, util_ldap_compare_node_display); dn_compare_cache = util_ald_create_cache(st, + st->compare_cache_size, util_ldap_dn_compare_node_hash, util_ldap_dn_compare_node_compare, util_ldap_dn_compare_node_copy, @@ -261,6 +264,7 @@ util_url_node_t *util_ald_create_caches(util_ldap_state_t *st, const char *url) util_ald_cache_t *util_ald_create_cache(util_ldap_state_t *st, + long cache_size, unsigned long (*hashfunc)(void *), int (*comparefunc)(void *, void *), void * (*copyfunc)(util_ald_cache_t *cache, void *), @@ -270,7 +274,7 @@ util_ald_cache_t *util_ald_create_cache(util_ldap_state_t *st, util_ald_cache_t *cache; unsigned long i; - if (st->search_cache_size <= 0) + if (cache_size <= 0) return NULL; #if APR_HAS_SHARED_MEMORY @@ -291,9 +295,9 @@ util_ald_cache_t *util_ald_create_cache(util_ldap_state_t *st, cache->rmm_addr = st->cache_rmm; cache->shm_addr = st->cache_shm; #endif - cache->maxentries = st->search_cache_size; + cache->maxentries = cache_size; cache->numentries = 0; - cache->size = st->search_cache_size / 3; + cache->size = cache_size / 3; if (cache->size < 64) cache->size = 64; for (i = 0; primes[i] && primes[i] < cache->size; ++i) ; cache->size = primes[i]? primes[i] : primes[i-1]; @@ -526,7 +530,7 @@ char *util_ald_cache_display_stats(request_rec *r, util_ald_cache_t *cache, char buf); } - buf = apr_psprintf(p, "%s%.2g\n", buf, cache->avg_purgetime); + buf = apr_psprintf(p, "%s%.2gms\n", buf, cache->avg_purgetime); return buf; } -- 2.40.0