1/* $OpenLDAP$ */ 2/* This work is part of OpenLDAP Software <http://www.openldap.org/>. 3 * 4 * Copyright 2003-2011 The OpenLDAP Foundation. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted only as authorized by the OpenLDAP 9 * Public License. 10 * 11 * A copy of this license is available in the file LICENSE in the 12 * top-level directory of the distribution or, alternatively, at 13 * <http://www.OpenLDAP.org/license.html>. 14 */ 15/* ACKNOWLEDGEMENTS: 16 * This work was initially developed by the Howard Chu for inclusion 17 * in OpenLDAP Software and subsequently enhanced by Pierangelo 18 * Masarati. 19 */ 20 21#ifndef PROTO_LDAP_H 22#define PROTO_LDAP_H 23 24LDAP_BEGIN_DECL 25 26extern BI_init ldap_back_initialize; 27extern BI_open ldap_back_open; 28 29extern BI_db_init ldap_back_db_init; 30extern BI_db_open ldap_back_db_open; 31extern BI_db_close ldap_back_db_close; 32extern BI_db_destroy ldap_back_db_destroy; 33 34extern BI_op_bind ldap_back_bind; 35extern BI_op_search ldap_back_search; 36extern BI_op_compare ldap_back_compare; 37extern BI_op_modify ldap_back_modify; 38extern BI_op_modrdn ldap_back_modrdn; 39extern BI_op_add ldap_back_add; 40extern BI_op_delete ldap_back_delete; 41extern BI_op_abandon ldap_back_abandon; 42extern BI_op_extended ldap_back_extended; 43 44extern BI_connection_destroy ldap_back_conn_destroy; 45 46extern BI_entry_get_rw ldap_back_entry_get; 47 48void ldap_back_release_conn_lock( ldapinfo_t *li, ldapconn_t **lcp, int dolock ); 49#define ldap_back_release_conn(li, lc) ldap_back_release_conn_lock((li), &(lc), 1) 50int ldap_back_dobind( ldapconn_t **lcp, Operation *op, SlapReply *rs, ldap_back_send_t sendok ); 51int ldap_back_retry( ldapconn_t **lcp, Operation *op, SlapReply *rs, ldap_back_send_t sendok ); 52int ldap_back_map_result( SlapReply *rs ); 53int ldap_back_op_result( ldapconn_t *lc, Operation *op, SlapReply *rs, 54 ber_int_t msgid, time_t timeout, ldap_back_send_t sendok ); 55int ldap_back_cancel( ldapconn_t *lc, Operation *op, SlapReply *rs, ber_int_t msgid, ldap_back_send_t sendok ); 56 57int ldap_back_init_cf( BackendInfo *bi ); 58int ldap_pbind_init_cf( BackendInfo *bi ); 59 60extern int ldap_back_conndn_cmp( const void *c1, const void *c2); 61extern int ldap_back_conn_cmp( const void *c1, const void *c2); 62extern int ldap_back_conndn_dup( void *c1, void *c2 ); 63extern void ldap_back_conn_free( void *c ); 64 65extern ldapconn_t * ldap_back_conn_delete( ldapinfo_t *li, ldapconn_t *lc ); 66 67extern int ldap_back_conn2str( const ldapconn_base_t *lc, char *buf, ber_len_t buflen ); 68extern int ldap_back_connid2str( const ldapconn_base_t *lc, char *buf, ber_len_t buflen ); 69 70extern int 71ldap_back_proxy_authz_ctrl( 72 Operation *op, 73 SlapReply *rs, 74 struct berval *bound_ndn, 75 int version, 76 slap_idassert_t *si, 77 LDAPControl *ctrl ); 78 79extern int 80ldap_back_controls_add( 81 Operation *op, 82 SlapReply *rs, 83 ldapconn_t *lc, 84 LDAPControl ***pctrls ); 85 86extern int 87ldap_back_controls_free( Operation *op, SlapReply *rs, LDAPControl ***pctrls ); 88 89extern void 90ldap_back_quarantine( 91 Operation *op, 92 SlapReply *rs ); 93 94#ifdef LDAP_BACK_PRINT_CONNTREE 95extern void 96ldap_back_print_conntree( ldapinfo_t *li, char *msg ); 97#endif /* LDAP_BACK_PRINT_CONNTREE */ 98 99extern void slap_retry_info_destroy( slap_retry_info_t *ri ); 100extern int slap_retry_info_parse( char *in, slap_retry_info_t *ri, 101 char *buf, ber_len_t buflen ); 102extern int slap_retry_info_unparse( slap_retry_info_t *ri, struct berval *bvout ); 103 104extern int slap_idassert_authzfrom_parse_cf( const char *fname, int lineno, const char *arg, slap_idassert_t *si ); 105extern int slap_idassert_passthru_parse_cf( const char *fname, int lineno, const char *arg, slap_idassert_t *si ); 106extern int slap_idassert_parse_cf( const char *fname, int lineno, int argc, char *argv[], slap_idassert_t *si ); 107 108extern int chain_initialize( void ); 109extern int pbind_initialize( void ); 110#ifdef SLAP_DISTPROC 111extern int distproc_initialize( void ); 112#endif 113 114extern int ldap_back_monitor_db_init( BackendDB *be ); 115extern int ldap_back_monitor_db_open( BackendDB *be ); 116extern int ldap_back_monitor_db_close( BackendDB *be ); 117extern int ldap_back_monitor_db_destroy( BackendDB *be ); 118 119extern LDAP_REBIND_PROC ldap_back_default_rebind; 120extern LDAP_URLLIST_PROC ldap_back_default_urllist; 121 122LDAP_END_DECL 123 124#endif /* PROTO_LDAP_H */ 125