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