Apache Portable Runtime
|
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 * The APR LDAP rebind functions provide an implementation of 00019 * a rebind procedure that can be used to allow clients to chase referrals, 00020 * using the same credentials used to log in originally. 00021 * 00022 * Use of this implementation is optional. 00023 * 00024 * @file apr_ldap_rebind.h 00025 * @brief Apache LDAP library 00026 */ 00027 00028 #ifndef APU_LDAP_REBIND_H 00029 #define APU_LDAP_REBIND_H 00030 00031 /** 00032 * @addtogroup APR_Util_LDAP 00033 * @{ 00034 **/ 00035 00036 #if defined(DOXYGEN) 00037 #include "apr_ldap.h" 00038 #endif 00039 00040 /* 00041 * Handle the case when LDAP is enabled 00042 */ 00043 #if APR_HAS_LDAP 00044 00045 /** 00046 * APR LDAP initialize rebind lock 00047 * 00048 * This function creates the lock for controlling access to the xref list.. 00049 * @param pool Pool to use when creating the xref_lock. 00050 */ 00051 APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_init(apr_pool_t *pool); 00052 00053 00054 /** 00055 * APR LDAP rebind_add function 00056 * 00057 * This function creates a cross reference entry for the specified ldap 00058 * connection. The rebind callback function will look up this ldap 00059 * connection so it can retrieve the bindDN and bindPW for use in any 00060 * binds while referrals are being chased. 00061 * 00062 * This function will add the callback to the LDAP handle passed in. 00063 * 00064 * A cleanup is registered within the pool provided to remove this 00065 * entry when the pool is removed. Alternatively apr_ldap_rebind_remove() 00066 * can be called to explicitly remove the entry at will. 00067 * 00068 * @param pool The pool to use 00069 * @param ld The LDAP connectionhandle 00070 * @param bindDN The bind DN to be used for any binds while chasing 00071 * referrals on this ldap connection. 00072 * @param bindPW The bind Password to be used for any binds while 00073 * chasing referrals on this ldap connection. 00074 */ 00075 APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_add(apr_pool_t *pool, 00076 LDAP *ld, 00077 const char *bindDN, 00078 const char *bindPW); 00079 00080 /** 00081 * APR LDAP rebind_remove function 00082 * 00083 * This function removes the rebind cross reference entry for the 00084 * specified ldap connection. 00085 * 00086 * If not explicitly removed, this function will be called automatically 00087 * when the pool is cleaned up. 00088 * 00089 * @param ld The LDAP connectionhandle 00090 */ 00091 APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_remove(LDAP *ld); 00092 00093 #endif /* APR_HAS_LDAP */ 00094 00095 /** @} */ 00096 00097 #endif /* APU_LDAP_REBIND_H */ 00098