00001 /* Licensed to the Apache Software Foundation (ASF) under one or more 00002 * contributor license agreements. See the NOTICE file distributed with 00003 * this work for additional information regarding copyright ownership. 00004 * The ASF licenses this file to You under the Apache License, Version 2.0 00005 * (the "License"); you may not use this file except in compliance with 00006 * the License. You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 /* 00018 * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h 00019 */ 00020 /** 00021 * @file apr_ldap.h 00022 * @brief APR-UTIL LDAP 00023 */ 00024 #ifndef APU_LDAP_H 00025 #define APU_LDAP_H 00026 00027 /** 00028 * @defgroup APR_Util_LDAP LDAP 00029 * @ingroup APR_Util 00030 * @{ 00031 */ 00032 00033 /* this will be defined if LDAP support was compiled into apr-util */ 00034 #define APR_HAS_LDAP 1 00035 00036 /* identify the LDAP toolkit used */ 00037 #define APR_HAS_NETSCAPE_LDAPSDK 0 00038 #define APR_HAS_SOLARIS_LDAPSDK 0 00039 #define APR_HAS_NOVELL_LDAPSDK 0 00040 #define APR_HAS_MOZILLA_LDAPSDK 0 00041 #define APR_HAS_OPENLDAP_LDAPSDK 1 00042 #define APR_HAS_MICROSOFT_LDAPSDK 0 00043 #define APR_HAS_ZOS_LDAPSDK 0 00044 #define APR_HAS_OTHER_LDAPSDK 0 00045 00046 00047 /* 00048 * Handle the case when LDAP is enabled 00049 */ 00050 #if APR_HAS_LDAP 00051 00052 /* 00053 * The following #defines are DEPRECATED and should not be used for 00054 * anything. They remain to maintain binary compatibility. 00055 * The original code defined the OPENLDAP SDK as present regardless 00056 * of what really was there, which was way bogus. In addition, the 00057 * apr_ldap_url_parse*() functions have been rewritten specifically for 00058 * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero. 00059 */ 00060 #define APR_HAS_LDAP_SSL 1 00061 #define APR_HAS_LDAP_URL_PARSE 0 00062 00063 #if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED) 00064 /* Ensure that the "deprecated" interfaces are still exposed 00065 * with OpenLDAP >= 2.3; these were exposed by default in earlier 00066 * releases. */ 00067 #define LDAP_DEPRECATED 1 00068 #endif 00069 00070 /* 00071 * Include the standard LDAP header files. 00072 */ 00073 00074 #include <lber.h> 00075 #include <ldap.h> 00076 00077 00078 00079 /* 00080 * Detected standard functions 00081 */ 00082 #define APR_HAS_LDAPSSL_CLIENT_INIT 0 00083 #define APR_HAS_LDAPSSL_CLIENT_DEINIT 0 00084 #define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0 00085 #define APR_HAS_LDAP_START_TLS_S 1 00086 #define APR_HAS_LDAP_SSLINIT 0 00087 #define APR_HAS_LDAPSSL_INIT 0 00088 #define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0 00089 00090 /* 00091 * Make sure the secure LDAP port is defined 00092 */ 00093 #ifndef LDAPS_PORT 00094 #define LDAPS_PORT 636 /* ldaps:/// default LDAP over TLS port */ 00095 #endif 00096 00097 /* 00098 * For ldap function calls that input a size limit on the number of returned elements 00099 * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0) 00100 */ 00101 #if APR_HAS_ZOS_LDAPSDK 00102 #define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT 00103 #else 00104 #ifdef LDAP_DEFAULT_LIMIT 00105 #define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT 00106 #else 00107 #define APR_LDAP_SIZELIMIT -1 /* equivalent to LDAP_DEFAULT_LIMIT */ 00108 #endif 00109 #endif 00110 00111 /* 00112 * z/OS is missing some defines 00113 */ 00114 #ifndef LDAP_VERSION_MAX 00115 #define LDAP_VERSION_MAX LDAP_VERSION 00116 #endif 00117 #if APR_HAS_ZOS_LDAPSDK 00118 #define LDAP_VENDOR_NAME "IBM z/OS" 00119 #endif 00120 00121 /* Note: Macros defining const casting has been removed in APR v1.0, 00122 * pending real support for LDAP v2.0 toolkits. 00123 * 00124 * In the mean time, please use an LDAP v3.0 toolkit. 00125 */ 00126 #if LDAP_VERSION_MAX <= 2 00127 #error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit. 00128 #endif 00129 00130 #ifdef __cplusplus 00131 extern "C" { 00132 #endif /* __cplusplus */ 00133 00134 /** 00135 * This structure allows the C LDAP API error codes to be returned 00136 * along with plain text error messages that explain to us mere mortals 00137 * what really happened. 00138 */ 00139 typedef struct apr_ldap_err_t { 00140 const char *reason; 00141 const char *msg; 00142 int rc; 00143 } apr_ldap_err_t; 00144 00145 #ifdef __cplusplus 00146 } 00147 #endif 00148 00149 #include "apr_ldap_url.h" 00150 #include "apr_ldap_init.h" 00151 #include "apr_ldap_option.h" 00152 00153 /** @} */ 00154 #endif /* APR_HAS_LDAP */ 00155 #endif /* APU_LDAP_H */