apr_ldap.h revision 251886
1251886Speter/* $FreeBSD: head/usr.bin/svn/lib/libapr_util/apr_ldap.h 251886 2013-06-18 02:53:45Z peter $ */
2251886Speter/* Licensed to the Apache Software Foundation (ASF) under one or more
3251886Speter * contributor license agreements.  See the NOTICE file distributed with
4251886Speter * this work for additional information regarding copyright ownership.
5251886Speter * The ASF licenses this file to You under the Apache License, Version 2.0
6251886Speter * (the "License"); you may not use this file except in compliance with
7251886Speter * the License.  You may obtain a copy of the License at
8251886Speter *
9251886Speter *     http://www.apache.org/licenses/LICENSE-2.0
10251886Speter *
11251886Speter * Unless required by applicable law or agreed to in writing, software
12251886Speter * distributed under the License is distributed on an "AS IS" BASIS,
13251886Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14251886Speter * See the License for the specific language governing permissions and
15251886Speter * limitations under the License.
16251886Speter */
17251886Speter
18251886Speter/*
19251886Speter * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
20251886Speter */
21251886Speter/**
22251886Speter * @file apr_ldap.h
23251886Speter * @brief  APR-UTIL LDAP
24251886Speter */
25251886Speter#ifndef APU_LDAP_H
26251886Speter#define APU_LDAP_H
27251886Speter
28251886Speter/**
29251886Speter * @defgroup APR_Util_LDAP LDAP
30251886Speter * @ingroup APR_Util
31251886Speter * @{
32251886Speter */
33251886Speter
34251886Speter/* this will be defined if LDAP support was compiled into apr-util */
35251886Speter#define APR_HAS_LDAP		  0
36251886Speter
37251886Speter/* identify the LDAP toolkit used */
38251886Speter#define APR_HAS_NETSCAPE_LDAPSDK  0
39251886Speter#define APR_HAS_SOLARIS_LDAPSDK   0
40251886Speter#define APR_HAS_NOVELL_LDAPSDK    0
41251886Speter#define APR_HAS_MOZILLA_LDAPSDK   0
42251886Speter#define APR_HAS_OPENLDAP_LDAPSDK  0
43251886Speter#define APR_HAS_MICROSOFT_LDAPSDK 0
44251886Speter#define APR_HAS_ZOS_LDAPSDK       0
45251886Speter#define APR_HAS_OTHER_LDAPSDK     0
46251886Speter
47251886Speter
48251886Speter/*
49251886Speter * Handle the case when LDAP is enabled
50251886Speter */
51251886Speter#if APR_HAS_LDAP
52251886Speter
53251886Speter/*
54251886Speter * The following #defines are DEPRECATED and should not be used for
55251886Speter * anything. They remain to maintain binary compatibility.
56251886Speter * The original code defined the OPENLDAP SDK as present regardless
57251886Speter * of what really was there, which was way bogus. In addition, the
58251886Speter * apr_ldap_url_parse*() functions have been rewritten specifically for
59251886Speter * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
60251886Speter */
61251886Speter#define APR_HAS_LDAP_SSL 1
62251886Speter#define APR_HAS_LDAP_URL_PARSE      0
63251886Speter
64251886Speter#if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED)
65251886Speter/* Ensure that the "deprecated" interfaces are still exposed
66251886Speter * with OpenLDAP >= 2.3; these were exposed by default in earlier
67251886Speter * releases. */
68251886Speter#define LDAP_DEPRECATED 1
69251886Speter#endif
70251886Speter
71251886Speter/*
72251886Speter * Include the standard LDAP header files.
73251886Speter */
74251886Speter
75251886Speter
76251886Speter
77251886Speter
78251886Speter
79251886Speter
80251886Speter/*
81251886Speter * Detected standard functions
82251886Speter */
83251886Speter#define APR_HAS_LDAPSSL_CLIENT_INIT 0
84251886Speter#define APR_HAS_LDAPSSL_CLIENT_DEINIT 0
85251886Speter#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0
86251886Speter#define APR_HAS_LDAP_START_TLS_S 0
87251886Speter#define APR_HAS_LDAP_SSLINIT 0
88251886Speter#define APR_HAS_LDAPSSL_INIT 0
89251886Speter#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
90251886Speter
91251886Speter/*
92251886Speter * Make sure the secure LDAP port is defined
93251886Speter */
94251886Speter#ifndef LDAPS_PORT
95251886Speter#define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */
96251886Speter#endif
97251886Speter
98251886Speter/*
99251886Speter * For ldap function calls that input a size limit on the number of returned elements
100251886Speter * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
101251886Speter */
102251886Speter#if APR_HAS_ZOS_LDAPSDK
103251886Speter#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
104251886Speter#else
105251886Speter#ifdef LDAP_DEFAULT_LIMIT
106251886Speter#define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
107251886Speter#else
108251886Speter#define APR_LDAP_SIZELIMIT -1 /* equivalent to LDAP_DEFAULT_LIMIT */
109251886Speter#endif
110251886Speter#endif
111251886Speter
112251886Speter/*
113251886Speter * z/OS is missing some defines
114251886Speter */
115251886Speter#ifndef LDAP_VERSION_MAX
116251886Speter#define LDAP_VERSION_MAX  LDAP_VERSION
117251886Speter#endif
118251886Speter#if APR_HAS_ZOS_LDAPSDK
119251886Speter#define LDAP_VENDOR_NAME "IBM z/OS"
120251886Speter#endif
121251886Speter
122251886Speter/* Note: Macros defining const casting has been removed in APR v1.0,
123251886Speter * pending real support for LDAP v2.0 toolkits.
124251886Speter *
125251886Speter * In the mean time, please use an LDAP v3.0 toolkit.
126251886Speter */
127251886Speter#if LDAP_VERSION_MAX <= 2
128251886Speter#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
129251886Speter#endif
130251886Speter
131251886Speter#ifdef __cplusplus
132251886Speterextern "C" {
133251886Speter#endif /* __cplusplus */
134251886Speter
135251886Speter/**
136251886Speter * This structure allows the C LDAP API error codes to be returned
137251886Speter * along with plain text error messages that explain to us mere mortals
138251886Speter * what really happened.
139251886Speter */
140251886Spetertypedef struct apr_ldap_err_t {
141251886Speter    const char *reason;
142251886Speter    const char *msg;
143251886Speter    int rc;
144251886Speter} apr_ldap_err_t;
145251886Speter
146251886Speter#ifdef __cplusplus
147251886Speter}
148251886Speter#endif
149251886Speter
150251886Speter#include "apr_ldap_url.h"
151251886Speter#include "apr_ldap_init.h"
152251886Speter#include "apr_ldap_option.h"
153251886Speter
154251886Speter/** @} */
155251886Speter#endif /* APR_HAS_LDAP */
156251886Speter#endif /* APU_LDAP_H */
157