]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/apr-util/include/apr_ldap.hw
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / apr-util / include / apr_ldap.hw
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  */
16
17 /*
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
26
27 /**
28  * @defgroup APR_Util_LDAP LDAP
29  * @ingroup APR_Util
30  * @{
31  */
32
33 /* this will be defined if LDAP support was compiled into apr-util */
34 #define APR_HAS_LDAP                1
35
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
46
47
48 /*
49  * Handle the case when LDAP is enabled
50  */
51 #if APR_HAS_LDAP
52
53 /*
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
67
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
74
75 /*
76  * Include the standard LDAP header files.
77  */
78
79 #include <winldap.h>
80
81
82 /*
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
92
93
94 /*
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
100
101
102 /*
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  * LDAP_DEFAULT_LIMIT is preferred as it allows inheritance from whatever the SDK
106  * or process is configured for.
107  */
108 #ifdef LDAP_DEFAULT_LIMIT
109 #define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
110 #else
111 #ifdef LDAP_NO_LIMIT
112 #define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
113 #endif
114 #endif
115
116 #ifndef APR_LDAP_SIZELIMIT
117 #define APR_LDAP_SIZELIMIT 0 /* equivalent to LDAP_NO_LIMIT, and what goes on the wire */
118 #endif
119
120 /*
121  * z/OS is missing some defines
122  */
123 #ifndef LDAP_VERSION_MAX
124 #define LDAP_VERSION_MAX  LDAP_VERSION
125 #endif
126 #if APR_HAS_ZOS_LDAPSDK
127 #define LDAP_VENDOR_NAME "IBM z/OS"
128 #endif
129
130 /* Note: Macros defining const casting has been removed in APR v1.0,
131  * pending real support for LDAP v2.0 toolkits.
132  *
133  * In the mean time, please use an LDAP v3.0 toolkit.
134  */
135 #if LDAP_VERSION_MAX <= 2
136 #error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
137 #endif 
138
139 #ifdef __cplusplus
140 extern "C" {
141 #endif /* __cplusplus */
142
143 /**
144  * This structure allows the C LDAP API error codes to be returned
145  * along with plain text error messages that explain to us mere mortals
146  * what really happened.
147  */
148 typedef struct apr_ldap_err_t {
149     const char *reason;
150     const char *msg;
151     int rc;
152 } apr_ldap_err_t;
153
154 #ifdef __cplusplus
155 }
156 #endif
157
158 /* The MS SDK returns LDAP_UNAVAILABLE when the backend has closed the connection
159  * between LDAP calls. Protect with APR_HAS_MICROSOFT_LDAPSDK in case someone 
160  * manually chooses another SDK on Windows 
161  */
162 #if APR_HAS_MICROSOFT_LDAPSDK
163 #define APR_LDAP_IS_SERVER_DOWN(s)    ((s) == LDAP_SERVER_DOWN \
164                                     || (s) == LDAP_UNAVAILABLE)
165 #else
166 #define APR_LDAP_IS_SERVER_DOWN(s)    ((s) == LDAP_SERVER_DOWN)
167 #endif
168
169 /* These symbols are not actually exported in a DSO build, but mapped into
170  * a private exported function array for apr_ldap_stub to bind dynamically.
171  * Rename them appropriately to protect the global namespace.
172  */
173 #ifdef APU_DSO_LDAP_BUILD
174
175 #define apr_ldap_info apr__ldap_info
176 #define apr_ldap_init apr__ldap_init
177 #define apr_ldap_ssl_init apr__ldap_ssl_init
178 #define apr_ldap_ssl_deinit apr__ldap_ssl_deinit
179 #define apr_ldap_get_option apr__ldap_get_option
180 #define apr_ldap_set_option apr__ldap_set_option
181 #define apr_ldap_rebind_init apr__ldap_rebind_init
182 #define apr_ldap_rebind_add apr__ldap_rebind_add
183 #define apr_ldap_rebind_remove apr__ldap_rebind_remove
184
185 #define APU_DECLARE_LDAP(type) type
186 #else
187 #define APU_DECLARE_LDAP(type) APU_DECLARE(type)
188 #endif
189
190 #include "apr_ldap_url.h"
191 #include "apr_ldap_init.h"
192 #include "apr_ldap_option.h"
193 #include "apr_ldap_rebind.h"
194
195 /** @} */
196 #endif /* APR_HAS_LDAP */
197 #endif /* APU_LDAP_H */