-extern pthread_mutex_t replog_mutex;
-extern pthread_mutex_t entry2str_mutex;
-extern time_t currenttime;
-extern char *replogfile;
+int
+add_replica_info(
+ Backend *be,
+ const char *host
+)
+{
+ int i = 0;
+
+ assert( be );
+ assert( host );
+
+ if ( be->be_replica != NULL ) {
+ for ( ; be->be_replica[ i ] != NULL; i++ );
+ }
+
+ be->be_replica = ch_realloc( be->be_replica,
+ sizeof( struct slap_replica_info * )*( i + 2 ) );
+
+ be->be_replica[ i ]
+ = ch_calloc( sizeof( struct slap_replica_info ), 1 );
+ be->be_replica[ i ]->ri_host = ch_strdup( host );
+ be->be_replica[ i + 1 ] = NULL;
+
+ return( i );
+}
+
+int
+add_replica_suffix(
+ Backend *be,
+ int nr,
+ const char *suffix
+)
+{
+ struct berval dn, *ndn = NULL;
+ int rc;
+
+ dn.bv_val = (char *) suffix;
+ dn.bv_len = strlen( dn.bv_val );
+
+ rc = dnNormalize( NULL, &dn, &ndn );
+ if( rc != LDAP_SUCCESS ) {
+ return 2;
+ }
+
+ if ( select_backend( ndn, 0, 0 ) != be ) {
+ ber_bvfree( ndn );
+ return 1;
+ }