Apache Portable Runtime
apr_ldap_rebind.h
Go to the documentation of this file.
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 
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines