]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - usr.bin/svn/lib/libapr_util/apr_ldap.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / usr.bin / svn / lib / libapr_util / apr_ldap.h
1 /* $FreeBSD$ */
2 /* Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 /*
19  * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
20  */
21 /**
22  * @file apr_ldap.h
23  * @brief  APR-UTIL LDAP 
24  */
25 #ifndef APU_LDAP_H
26 #define APU_LDAP_H
27
28 /**
29  * @defgroup APR_Util_LDAP LDAP
30  * @ingroup APR_Util
31  * @{
32  */
33
34 /* this will be defined if LDAP support was compiled into apr-util */
35 #define APR_HAS_LDAP              0
36
37 /* identify the LDAP toolkit used */
38 #define APR_HAS_NETSCAPE_LDAPSDK  0
39 #define APR_HAS_SOLARIS_LDAPSDK   0
40 #define APR_HAS_NOVELL_LDAPSDK    0
41 #define APR_HAS_MOZILLA_LDAPSDK   0
42 #define APR_HAS_OPENLDAP_LDAPSDK  0
43 #define APR_HAS_MICROSOFT_LDAPSDK 0
44 #define APR_HAS_TIVOLI_LDAPSDK    0
45 #define APR_HAS_ZOS_LDAPSDK       0
46 #define APR_HAS_OTHER_LDAPSDK     0
47
48
49 /*
50  * Handle the case when LDAP is enabled
51  */
52 #if APR_HAS_LDAP
53
54 /*
55  * The following #defines are DEPRECATED and should not be used for
56  * anything. They remain to maintain binary compatibility.
57  * The original code defined the OPENLDAP SDK as present regardless
58  * of what really was there, which was way bogus. In addition, the
59  * apr_ldap_url_parse*() functions have been rewritten specifically for
60  * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
61  */
62 #if APR_HAS_TIVOLI_LDAPSDK
63 #define APR_HAS_LDAP_SSL 0
64 #else
65 #define APR_HAS_LDAP_SSL 1
66 #endif
67 #define APR_HAS_LDAP_URL_PARSE      0
68
69 #if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED) 
70 /* Ensure that the "deprecated" interfaces are still exposed
71  * with OpenLDAP >= 2.3; these were exposed by default in earlier
72  * releases. */
73 #define LDAP_DEPRECATED 1
74 #endif
75
76 /*
77  * Include the standard LDAP header files.
78  */
79
80
81
82
83
84
85 /*
86  * Detected standard functions
87  */
88 #define APR_HAS_LDAPSSL_CLIENT_INIT 0
89 #define APR_HAS_LDAPSSL_CLIENT_DEINIT 0
90 #define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0
91 #define APR_HAS_LDAP_START_TLS_S 0
92 #define APR_HAS_LDAP_SSLINIT 0
93 #define APR_HAS_LDAPSSL_INIT 0
94 #define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
95
96 /*
97  * Make sure the secure LDAP port is defined
98  */
99 #ifndef LDAPS_PORT
100 #define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */
101 #endif
102
103 /*
104  * For ldap function calls that input a size limit on the number of returned elements
105  * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
106  * LDAP_DEFAULT_LIMIT is preferred as it allows inheritance from whatever the SDK
107  * or process is configured for.
108  */
109 #ifdef LDAP_DEFAULT_LIMIT
110 #define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
111 #else
112 #ifdef LDAP_NO_LIMIT
113 #define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
114 #endif
115 #endif
116
117 #ifndef APR_LDAP_SIZELIMIT
118 #define APR_LDAP_SIZELIMIT 0 /* equivalent to LDAP_NO_LIMIT, and what goes on the wire */
119 #endif
120
121 /*
122  * z/OS is missing some defines
123  */
124 #ifndef LDAP_VERSION_MAX
125 #define LDAP_VERSION_MAX  LDAP_VERSION
126 #endif
127 #if APR_HAS_ZOS_LDAPSDK
128 #define LDAP_VENDOR_NAME "IBM z/OS"
129 #endif
130
131 /* Note: Macros defining const casting has been removed in APR v1.0,
132  * pending real support for LDAP v2.0 toolkits.
133  *
134  * In the mean time, please use an LDAP v3.0 toolkit.
135  */
136 #if LDAP_VERSION_MAX <= 2
137 #error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
138 #endif 
139
140 #ifdef __cplusplus
141 extern "C" {
142 #endif /* __cplusplus */
143
144 /**
145  * This structure allows the C LDAP API error codes to be returned
146  * along with plain text error messages that explain to us mere mortals
147  * what really happened.
148  */
149 typedef struct apr_ldap_err_t {
150     const char *reason;
151     const char *msg;
152     int rc;
153 } apr_ldap_err_t;
154
155 #ifdef __cplusplus
156 }
157 #endif
158
159 /* The MS SDK returns LDAP_UNAVAILABLE when the backend has closed the connection
160  * between LDAP calls. Protect with APR_HAS_MICROSOFT_LDAPSDK in case someone 
161  * manually chooses another SDK on Windows 
162  */
163 #if APR_HAS_MICROSOFT_LDAPSDK
164 #define APR_LDAP_IS_SERVER_DOWN(s)    ((s) == LDAP_SERVER_DOWN \
165                                     || (s) == LDAP_UNAVAILABLE)
166 #else
167 #define APR_LDAP_IS_SERVER_DOWN(s)    ((s) == LDAP_SERVER_DOWN)
168 #endif
169
170 /* These symbols are not actually exported in a DSO build, but mapped into
171  * a private exported function array for apr_ldap_stub to bind dynamically.
172  * Rename them appropriately to protect the global namespace.
173  */
174 #ifdef APU_DSO_LDAP_BUILD
175
176 #define apr_ldap_info apr__ldap_info
177 #define apr_ldap_init apr__ldap_init
178 #define apr_ldap_ssl_init apr__ldap_ssl_init
179 #define apr_ldap_ssl_deinit apr__ldap_ssl_deinit
180 #define apr_ldap_get_option apr__ldap_get_option
181 #define apr_ldap_set_option apr__ldap_set_option
182 #define apr_ldap_rebind_init apr__ldap_rebind_init
183 #define apr_ldap_rebind_add apr__ldap_rebind_add
184 #define apr_ldap_rebind_remove apr__ldap_rebind_remove
185
186 #define APU_DECLARE_LDAP(type) type
187 #else
188 #define APU_DECLARE_LDAP(type) APU_DECLARE(type)
189 #endif
190
191 #include "apr_ldap_url.h"
192 #include "apr_ldap_init.h"
193 #include "apr_ldap_option.h"
194 #include "apr_ldap_rebind.h"
195
196 #endif /* APR_HAS_LDAP */
197 /** @} */
198 #endif /* APU_LDAP_H */