2 * Copyright 1998-2001 The OpenLDAP Foundation, All Rights Reserved.
3 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5 * Copyright 1999, Howard Chu, All rights reserved. <hyc@highlandsun.com>
7 * Copyright 2001, Pierangelo Masarati, All rights reserved. <ando@sys-net.it>
9 * This work has been developed to fulfill the requirements
10 * of SysNet s.n.c. <http:www.sys-net.it> and it has been donated
11 * to the OpenLDAP Foundation in the hope that it may be useful
12 * to the Open Source community, but WITHOUT ANY WARRANTY.
14 * Permission is granted to anyone to use this software for any purpose
15 * on any computer system, and to alter it and redistribute it, subject
16 * to the following restrictions:
18 * 1. The author and SysNet s.n.c. are not responsible for the consequences
19 * of use of this software, no matter how awful, even if they arise from
22 * 2. The origin of this software must not be misrepresented, either by
23 * explicit claim or by omission. Since few users ever read sources,
24 * credits should appear in the documentation.
26 * 3. Altered versions must be plainly marked as such, and must not be
27 * misrepresented as being the original software. Since few users
28 * ever read sources, credits should appear in the documentation.
29 * SysNet s.n.c. cannot be responsible for the consequences of the
32 * 4. This notice may not be removed or altered.
35 * This software is based on the backend back-ldap, implemented
36 * by Howard Chu <hyc@highlandsun.com>, and modified by Mark Valence
37 * <kurash@sassafras.com>, Pierangelo Masarati <ando@sys-net.it> and other
38 * contributors. The contribution of the original software to the present
39 * implementation is acknowledged in this copyright statement.
41 * A special acknowledgement goes to Howard for the overall architecture
42 * (and for borrowing large pieces of code), and to Mark, who implemented
43 * from scratch the attribute/objectclass mapping.
45 * The original copyright statement follows.
47 * Copyright 1999, Howard Chu, All rights reserved. <hyc@highlandsun.com>
49 * Permission is granted to anyone to use this software for any purpose
50 * on any computer system, and to alter it and redistribute it, subject
51 * to the following restrictions:
53 * 1. The author is not responsible for the consequences of use of this
54 * software, no matter how awful, even if they arise from flaws in it.
56 * 2. The origin of this software must not be misrepresented, either by
57 * explicit claim or by omission. Since few users ever read sources,
58 * credits should appear in the documentation.
60 * 3. Altered versions must be plainly marked as such, and must not be
61 * misrepresented as being the original software. Since few users
62 * ever read sources, credits should appear in the
65 * 4. This notice may not be removed or altered.
70 #error "include servers/slapd/back-ldap/back-ldap.h before this file!"
71 #endif /* SLAPD_LDAP_H */
78 /* String rewrite library */
86 struct metasingleconn {
88 #define META_NOT_CANDIDATE 0
89 #define META_CANDIDATE 1
94 #define META_UNBOUND 0
96 #define META_ANONYMOUS 2
100 struct slap_conn *conn;
101 struct rewrite_info *rwinfo;
104 * means that the connection is bound;
105 * of course only one target actually is ...
108 #define META_BOUND_NONE -1
109 #define META_BOUND_ALL -2
110 /* supersedes the connection stuff */
111 struct metasingleconn **conns;
116 char *suffix;/* normalized suffix */
123 struct rewrite_info *rwinfo;
125 struct ldapmap oc_map;
126 struct ldapmap at_map;
130 ldap_pvt_thread_mutex_t mutex;
133 #define META_DNCACHE_DISABLED 0
134 #define META_DNCACHE_FOREVER -1
135 long int ttl; /* seconds; 0: no cache, -1: no expiry */
141 #define META_DEFAULT_TARGET_NONE -1
142 struct metatarget **targets;
144 struct metadncache cache;
146 ldap_pvt_thread_mutex_t conn_mutex;
151 meta_back_do_single_bind(
162 #define META_OP_ALLOW_MULTIPLE 0x00
163 #define META_OP_REQUIRE_SINGLE 0x01
164 #define META_OP_REQUIRE_ALL 0x02
165 extern struct metaconn *
168 struct slap_conn *conn,
188 back_meta_LTX_init_module(
209 meta_back_is_candidate(
216 meta_back_count_candidates(
222 meta_back_is_candidate_unique(
228 meta_back_select_unique_candidate(
234 meta_clear_unused_candidates(
242 meta_clear_one_candidate(
243 struct metasingleconn *lc,
248 * Dn cache stuff (experimental)
263 meta_dncache_get_target(
264 struct metadncache *cache,
269 meta_dncache_update_entry(
270 struct metadncache *cache,
276 meta_dncache_delete_entry(
277 struct metadncache *cache,
288 #endif /* SLAPD_META_H */