X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Finit.c;h=bd4e73d3d4b608b8e847fae110d20001772daee4;hb=a3d8cda2011920fae1e499e0f4c8c794f927138e;hp=f0fbb962e38ed37b1ec718901bdee2630fdc007e;hpb=68c5f6fa985c9ea5ef2ff52ccee75b26741fea27;p=openldap
diff --git a/servers/slapd/back-ldap/init.c b/servers/slapd/back-ldap/init.c
index f0fbb962e3..bd4e73d3d4 100644
--- a/servers/slapd/back-ldap/init.c
+++ b/servers/slapd/back-ldap/init.c
@@ -1,8 +1,22 @@
/* init.c - initialize ldap backend */
/* $OpenLDAP$ */
-/*
- * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software .
+ *
+ * Copyright 2003 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * .
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was initially developed by the Howard Chu for inclusion
+ * in OpenLDAP Software and subsequently enhanced by Pierangelo
+ * Masarati.
*/
/* This is an altered version */
/*
@@ -39,6 +53,7 @@
#include
+#include
#include
#include "slap.h"
@@ -46,7 +61,7 @@
#ifdef SLAPD_LDAP_DYNAMIC
-int back_ldap_LTX_init_module(int argc, char *argv[]) {
+int init_module(int argc, char *argv[]) {
BackendInfo bi;
memset( &bi, '\0', sizeof(bi) );
@@ -95,6 +110,8 @@ ldap_back_initialize(
bi->bi_connection_init = 0;
bi->bi_connection_destroy = ldap_back_conn_destroy;
+ ldap_chain_setup();
+
return 0;
}
@@ -117,8 +134,8 @@ ldap_back_db_init(
li->bindpw.bv_len = 0;
#ifdef ENABLE_REWRITE
- li->rwinfo = rewrite_info_init( REWRITE_MODE_USE_DEFAULT );
- if ( li->rwinfo == NULL ) {
+ li->rwmap.rwm_rw = rewrite_info_init( REWRITE_MODE_USE_DEFAULT );
+ if ( li->rwmap.rwm_rw == NULL ) {
ch_free( li );
return -1;
}
@@ -126,7 +143,8 @@ ldap_back_db_init(
ldap_pvt_thread_mutex_init( &li->conn_mutex );
- ldap_back_map_init( &li->at_map, &mapping );
+ ldap_back_map_init( &li->rwmap.rwm_oc, &mapping );
+ ldap_back_map_init( &li->rwmap.rwm_at, &mapping );
li->be = be;
be->be_private = li;
@@ -146,6 +164,7 @@ ldap_back_conn_free(
ch_free( lc->bound_dn.bv_val );
}
if ( lc->cred.bv_val ) {
+ memset( lc->cred.bv_val, 0, lc->cred.bv_len );
ch_free( lc->cred.bv_val );
}
if ( lc->local_dn.bv_val ) {
@@ -192,19 +211,19 @@ ldap_back_db_destroy(
avl_free( li->conntree, ldap_back_conn_free );
}
#ifdef ENABLE_REWRITE
- if (li->rwinfo) {
- rewrite_info_delete( li->rwinfo );
+ if (li->rwmap.rwm_rw) {
+ rewrite_info_delete( &li->rwmap.rwm_rw );
}
#else /* !ENABLE_REWRITE */
- if (li->suffix_massage) {
- ber_bvarray_free( li->suffix_massage );
+ if (li->rwmap.rwm_suffix_massage) {
+ ber_bvarray_free( li->rwmap.rwm_suffix_massage );
}
#endif /* !ENABLE_REWRITE */
- avl_free( li->oc_map.remap, NULL );
- avl_free( li->oc_map.map, mapping_free );
- avl_free( li->at_map.remap, NULL );
- avl_free( li->at_map.map, mapping_free );
+ avl_free( li->rwmap.rwm_oc.remap, NULL );
+ avl_free( li->rwmap.rwm_oc.map, mapping_free );
+ avl_free( li->rwmap.rwm_at.remap, NULL );
+ avl_free( li->rwmap.rwm_at.map, mapping_free );
ldap_pvt_thread_mutex_unlock( &li->conn_mutex );
ldap_pvt_thread_mutex_destroy( &li->conn_mutex );