X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Frepl.c;h=529416023c97fc1cd7afa356f144c50c9a4c807a;hb=c2a9642850cef813e15f6d8e29799e2b99e52726;hp=8ebc23ac7597bee43a012d1655ac886321538dfa;hpb=fda3d6260e25f1d0b9c035b0d520b2c9d0f22e49;p=openldap diff --git a/servers/slapd/repl.c b/servers/slapd/repl.c index 8ebc23ac75..529416023c 100644 --- a/servers/slapd/repl.c +++ b/servers/slapd/repl.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2004 The OpenLDAP Foundation. + * Copyright 1998-2005 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,6 +42,7 @@ int add_replica_info( Backend *be, + const char *uri, const char *host ) { @@ -59,7 +60,8 @@ add_replica_info( 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 ]->ri_uri = uri; + be->be_replica[ i ]->ri_host = host; be->be_replica[ i ]->ri_nsuffix = NULL; be->be_replica[ i ]->ri_attrs = NULL; be->be_replica[ i + 1 ] = NULL; @@ -134,15 +136,17 @@ replog( Operation *op ) #endif int subsets = 0; long now = slap_get_time(); + char *replogfile; - if ( op->o_bd->be_replogfile == NULL && frontendDB->be_replogfile == NULL ) { + replogfile = op->o_bd->be_replogfile ? op->o_bd->be_replogfile : + frontendDB->be_replogfile; + if ( !replogfile ) { return; } - ldap_pvt_thread_mutex_lock( &SLAPD_GLOBAL(replog_mutex) ); - if ( (fp = lock_fopen( op->o_bd->be_replogfile ? op->o_bd->be_replogfile : - frontendDB->be_replogfile, "a", &lfp )) == NULL ) { - ldap_pvt_thread_mutex_unlock( &SLAPD_GLOBAL(replog_mutex) ); + ldap_pvt_thread_mutex_lock( &replog_mutex ); + if ( (fp = lock_fopen( replogfile, "a", &lfp )) == NULL ) { + ldap_pvt_thread_mutex_unlock( &replog_mutex ); return; } @@ -183,7 +187,7 @@ replog( Operation *op ) /* if no replicas matched, drop the log * (should we log it anyway?) */ lock_fclose( fp, lfp ); - ldap_pvt_thread_mutex_unlock( &SLAPD_GLOBAL(replog_mutex) ); + ldap_pvt_thread_mutex_unlock( &replog_mutex ); return; } @@ -231,7 +235,7 @@ replog( Operation *op ) } lock_fclose( fp, lfp ); - ldap_pvt_thread_mutex_unlock( &SLAPD_GLOBAL(replog_mutex) ); + ldap_pvt_thread_mutex_unlock( &replog_mutex ); } static void