X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fback-ldap%2Finit.c;h=ac306acef0e0183c48b1b3b107c632da49a06377;hb=51bd73ce7dac183a81e8d848b9b9a60132a1fec1;hp=0665262b757aab3975851298fc27b9c82f5288f0;hpb=967d1dcb2dd35c0977118fe12e544815d5a701ed;p=openldap diff --git a/servers/slapd/back-ldap/init.c b/servers/slapd/back-ldap/init.c index 0665262b75..ac306acef0 100644 --- a/servers/slapd/back-ldap/init.c +++ b/servers/slapd/back-ldap/init.c @@ -1,4 +1,5 @@ /* init.c - initialize ldap backend */ +/* $OpenLDAP$ */ /* * Copyright 1999, Howard Chu, All rights reserved. @@ -30,6 +31,21 @@ #include "slap.h" #include "back-ldap.h" +#ifdef SLAPD_LDAP_DYNAMIC + +int back_ldap_LTX_init_module(int argc, char *argv[]) { + BackendInfo bi; + + memset( &bi, '\0', sizeof(bi) ); + bi.bi_type = "ldap"; + bi.bi_init = ldap_back_initialize; + + backend_add(&bi); + return 0; +} + +#endif /* SLAPD_LDAP_DYNAMIC */ + int ldap_back_initialize( BackendInfo *bi @@ -47,7 +63,7 @@ ldap_back_initialize( bi->bi_db_destroy = ldap_back_db_destroy; bi->bi_op_bind = ldap_back_bind; - bi->bi_op_unbind = ldap_back_unbind; + bi->bi_op_unbind = 0; bi->bi_op_search = ldap_back_search; bi->bi_op_compare = ldap_back_compare; bi->bi_op_modify = ldap_back_modify; @@ -56,9 +72,20 @@ ldap_back_initialize( bi->bi_op_delete = ldap_back_delete; bi->bi_op_abandon = 0; -#ifdef SLAPD_ACLGROUPS - bi->bi_acl_group = 0; -#endif + bi->bi_extended = 0; + + bi->bi_acl_group = ldap_back_group; + bi->bi_acl_attribute = 0; + bi->bi_chk_referrals = 0; + +#ifdef HAVE_CYRUS_SASL + bi->bi_sasl_authorize = 0; + bi->bi_sasl_getsecret = 0; + bi->bi_sasl_putsecret = 0; +#endif /* HAVE_CYRUS_SASL */ + + bi->bi_connection_init = 0; + bi->bi_connection_destroy = ldap_back_conn_destroy; return 0; } @@ -87,9 +114,17 @@ ldap_back_db_destroy( if (be->be_private) { li = (struct ldapinfo *)be->be_private; - if (li->host) { - free(li->host); - li->host = NULL; + if (li->url) { + free(li->url); + li->url = NULL; + } + if (li->binddn) { + free(li->binddn); + li->binddn = NULL; + } + if (li->bindpw) { + free(li->bindpw); + li->bindpw = NULL; } ldap_pvt_thread_mutex_destroy( &li->conn_mutex ); }