/* init.c - initialize relay backend */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2004 The OpenLDAP Foundation.
+ * Copyright 2004 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
#include <stdio.h>
-#include <ac/string.h>
-#include <ac/socket.h>
-
#include "slap.h"
#include "back-relay.h"
-#ifdef SLAPD_RELAY_DYNAMIC
+#if SLAPD_RELAY == SLAPD_MOD_DYNAMIC
int
init_module( int argc, char *argv[] ) {
return 0;
}
-#endif /* SLAPD_RELAY_DYNAMIC */
+#endif /* SLAPD_RELAY */
int
relay_back_initialize( BackendInfo *bi )
}
ri->ri_bd = NULL;
+ ri->ri_realsuffix.bv_val = NULL;
+ ri->ri_realsuffix.bv_len = 0;
+ ri->ri_massage = 0;
be->be_private = (void *)ri;
assert( ri != NULL );
-#if 0
- if ( !ri->ri_do_not_massage ) {
- char *argv[ 4 ];
-
- argv[ 0 ] = "suffixmassage";
- argv[ 1 ] = be->be_suffix[0].bv_val;
- argv[ 2 ] = ri->ri_bd->be_suffix[0].bv_val;
- argv[ 3 ] = NULL;
-
- if ( be->be_config( be, "back-relay", 1, 3, argv ) ) {
- return 1;
- }
+ if ( ri->ri_realsuffix.bv_val != NULL ) {
+ ri->ri_bd = select_backend( &ri->ri_realsuffix, 0, 1 );
+ /* must be there: it was during config! */
+ assert( ri->ri_bd );
}
-#endif
return 0;
}
relay_back_info *ri = (relay_back_info *)be->be_private;
if ( ri ) {
+ if ( ri->ri_realsuffix.bv_val ) {
+ ch_free( ri->ri_realsuffix.bv_val );
+ }
ch_free( ri );
}
return 0;
}
+