17 #ifndef APU_LDAP_CACHE_H
18 #define APU_LDAP_CACHE_H
35 typedef struct util_cache_node_t {
38 struct util_cache_node_t *next;
41 typedef struct util_ald_cache util_ald_cache_t;
43 struct util_ald_cache {
45 unsigned long maxentries;
46 unsigned long numentries;
47 unsigned long fullmark;
50 unsigned long (*hash)(
void *);
51 int (*compare)(
void *,
void *);
52 void * (*copy)(util_ald_cache_t *cache,
void *);
53 void (*free)(util_ald_cache_t *cache,
void *);
54 void (*display)(
request_rec *
r, util_ald_cache_t *cache,
void *);
55 util_cache_node_t **nodes;
57 unsigned long numpurges;
60 unsigned long npurged;
64 unsigned long fetches;
66 unsigned long inserts;
67 unsigned long removes;
69 #if APR_HAS_SHARED_MEMORY
77 #define ALD_MM_FILE_MODE ( S_IRUSR|S_IWUSR )
79 #define ALD_MM_FILE_MODE ( _S_IREAD|_S_IWRITE )
93 typedef struct util_url_node_t {
95 util_ald_cache_t *search_cache;
96 util_ald_cache_t *compare_cache;
97 util_ald_cache_t *dn_compare_cache;
103 typedef struct util_compare_subgroup_t {
104 const char **subgroupDNs;
106 } util_compare_subgroup_t;
113 typedef struct util_search_node_t {
114 const char *username;
121 } util_search_node_t;
127 typedef struct util_compare_node_t {
134 struct util_compare_subgroup_t *subgroupList;
135 } util_compare_node_t;
141 typedef struct util_dn_compare_node_t {
144 } util_dn_compare_node_t;
152 unsigned long util_ldap_url_node_hash(
void *n);
153 int util_ldap_url_node_compare(
void *a,
void *b);
154 void *util_ldap_url_node_copy(util_ald_cache_t *cache,
void *c);
155 void util_ldap_url_node_free(util_ald_cache_t *cache,
void *n);
156 void util_ldap_url_node_display(
request_rec *
r, util_ald_cache_t *cache,
void *n);
158 unsigned long util_ldap_search_node_hash(
void *n);
159 int util_ldap_search_node_compare(
void *a,
void *b);
160 void *util_ldap_search_node_copy(util_ald_cache_t *cache,
void *c);
161 void util_ldap_search_node_free(util_ald_cache_t *cache,
void *n);
162 void util_ldap_search_node_display(
request_rec *
r, util_ald_cache_t *cache,
void *n);
164 unsigned long util_ldap_compare_node_hash(
void *n);
165 int util_ldap_compare_node_compare(
void *a,
void *b);
166 void *util_ldap_compare_node_copy(util_ald_cache_t *cache,
void *c);
167 void util_ldap_compare_node_free(util_ald_cache_t *cache,
void *n);
168 void util_ldap_compare_node_display(
request_rec *
r, util_ald_cache_t *cache,
void *n);
170 unsigned long util_ldap_dn_compare_node_hash(
void *n);
171 int util_ldap_dn_compare_node_compare(
void *a,
void *b);
172 void *util_ldap_dn_compare_node_copy(util_ald_cache_t *cache,
void *c);
173 void util_ldap_dn_compare_node_free(util_ald_cache_t *cache,
void *n);
174 void util_ldap_dn_compare_node_display(
request_rec *
r, util_ald_cache_t *cache,
void *n);
180 void util_ald_free(util_ald_cache_t *cache,
const void *ptr);
181 void *util_ald_alloc(util_ald_cache_t *cache,
unsigned long size);
182 const char *util_ald_strdup(util_ald_cache_t *cache,
const char *
s);
183 util_compare_subgroup_t *util_ald_sgl_dup(util_ald_cache_t *cache, util_compare_subgroup_t *sgl);
184 void util_ald_sgl_free(util_ald_cache_t *cache, util_compare_subgroup_t **sgl);
187 unsigned long util_ald_hash_string(
int nstr, ...);
188 void util_ald_cache_purge(util_ald_cache_t *cache);
189 util_url_node_t *util_ald_create_caches(util_ldap_state_t *
s,
const char *
url);
190 util_ald_cache_t *util_ald_create_cache(util_ldap_state_t *st,
193 unsigned long (*hashfunc)(
void *),
194 int (*comparefunc)(
void *,
void *),
195 void * (*copyfunc)(util_ald_cache_t *cache,
void *),
196 void (*freefunc)(util_ald_cache_t *cache,
void *),
197 void (*displayfunc)(
request_rec *
r, util_ald_cache_t *cache,
void *));
199 void util_ald_destroy_cache(util_ald_cache_t *cache);
200 void *util_ald_cache_fetch(util_ald_cache_t *cache,
void *payload);
201 void *util_ald_cache_insert(util_ald_cache_t *cache,
void *payload);
202 void util_ald_cache_remove(util_ald_cache_t *cache,
void *payload);
203 char *util_ald_cache_display_stats(
request_rec *
r, util_ald_cache_t *cache,
char *
name,
char *
id);
struct apr_rmm_t apr_rmm_t
Definition: apr_rmm.h:40
dav_buffer apr_size_t size
Definition: mod_dav.h:461
request_rec * r
Definition: mod_dav.h:518
const char * s
Definition: mod_dav.h:1327
const char * name
Definition: mod_dav.h:805
int
Definition: mod_proxy.h:674
proxy_worker proxy_server_conf char * url
Definition: mod_proxy.h:657
apr_int64_t apr_time_t
Definition: apr_time.h:45
Definition: apr_arch_shm.h:61
A structure that represents the current request.
Definition: httpd.h:856