summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBradley Nicholes <bnicholes@apache.org>2005-03-30 23:25:47 +0000
committerBradley Nicholes <bnicholes@apache.org>2005-03-30 23:25:47 +0000
commitaad2e44aae94d2302a2a42f3c7d81f65f8918aba (patch)
treefe5ded4a44bd9bc4b7c0c2fac4f663516c2d2221
parent33ad7284dddcff99e6688047e8cfe3c4ae5c2c18 (diff)
downloadhttpd-aad2e44aae94d2302a2a42f3c7d81f65f8918aba.tar.gz
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
-rw-r--r--modules/ldap/util_ldap_cache.c1
-rw-r--r--modules/ldap/util_ldap_cache.h1
-rw-r--r--modules/ldap/util_ldap_cache_mgr.c14
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<td align='right'>%.2g</td>\n</tr>", buf, cache->avg_purgetime);
+ buf = apr_psprintf(p, "%s<td align='right'>%.2gms</td>\n</tr>", buf, cache->avg_purgetime);
return buf;
}