github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/include/apr_ldap.h (about)

     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 */