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 apu_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 * Handle the case when LDAP is enabled 00033 */ 00034 #if APR_HAS_LDAP 00035 00036 /** 00037 * APR LDAP initialize rebind lock 00038 * 00039 * This function creates the lock for controlling access to the xref list.. 00040 * @param pool Pool to use when creating the xref_lock. 00041 */ 00042 APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_init(apr_pool_t *pool); 00043 00044 00045 /** 00046 * APR LDAP rebind_add function 00047 * 00048 * This function creates a cross reference entry for the specified ldap 00049 * connection. The rebind callback function will look up this ldap 00050 * connection so it can retrieve the bindDN and bindPW for use in any 00051 * binds while referrals are being chased. 00052 * 00053 * This function will add the callback to the LDAP handle passed in. 00054 * 00055 * A cleanup is registered within the pool provided to remove this 00056 * entry when the pool is removed. Alternatively apr_ldap_rebind_remove() 00057 * can be called to explicitly remove the entry at will. 00058 * 00059 * @param pool The pool to use 00060 * @param ld The LDAP connectionhandle 00061 * @param bindDN The bind DN to be used for any binds while chasing 00062 * referrals on this ldap connection. 00063 * @param bindPW The bind Password to be used for any binds while 00064 * chasing referrals on this ldap connection. 00065 */ 00066 APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_add(apr_pool_t *pool, 00067 LDAP *ld, 00068 const char *bindDN, 00069 const char *bindPW); 00070 00071 /** 00072 * APR LDAP rebind_remove function 00073 * 00074 * This function removes the rebind cross reference entry for the 00075 * specified ldap connection. 00076 * 00077 * If not explicitly removed, this function will be called automatically 00078 * when the pool is cleaned up. 00079 * 00080 * @param ld The LDAP connectionhandle 00081 */ 00082 APU_DECLARE_LDAP(apr_status_t) apr_ldap_rebind_remove(LDAP *ld); 00083 00084 #endif /* APR_HAS_LDAP */ 00085 00086 #endif /* APU_LDAP_REBIND_H */ 00087