/* 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 <http://www.openldap.org/>.
+ *
+ * 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
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* 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 */
/*
#include <stdio.h>
+#include <ac/string.h>
#include <ac/socket.h>
#include "slap.h"
#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) );
bi->bi_connection_init = 0;
bi->bi_connection_destroy = ldap_back_conn_destroy;
+ ldap_chain_setup();
+
return 0;
}
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;
}
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;
+ be->be_flags |= SLAP_BFLAG_NOLASTMOD;
return 0;
}
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 ) {
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 );