From 5f24feee3f643d9554c01c782edb7d3a377f455b Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Wed, 5 Apr 2006 20:26:36 +0000 Subject: [PATCH] Additional changes - these suggested by Quanah --- servers/slapd/ad.c | 10 ++++++---- servers/slapd/overlays/syncprov.c | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/servers/slapd/ad.c b/servers/slapd/ad.c index 7183d5e59f..4ac9b6a8c0 100644 --- a/servers/slapd/ad.c +++ b/servers/slapd/ad.c @@ -1177,11 +1177,13 @@ ad_define_option( const char *name, const char *fname, int lineno ) return 0; } -void ad_unparse_options( BerVarray *res ){ +void +ad_unparse_options( BerVarray *res ) +{ int i; - for ( i=0; i < option_count; i++ ) { - ber_bvarray_add( res, ber_bvdup( &(options[i].name) )); - } + for ( i = 0; i < option_count; i++ ) { + value_add_one( res, &options[i].name ); + } } /* Find the definition of the option name or prefix matching the arguments */ diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index ae7780700f..2278ad34eb 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -1302,9 +1302,6 @@ syncprov_add_slog( Operation *op, struct berval *csn ) sl->sl_mincsn.bv_len = se->se_csn.bv_len; ch_free( se ); sl->sl_num--; - if ( !sl->sl_head ) { - sl->sl_tail = NULL; - } } ldap_pvt_thread_mutex_unlock( &sl->sl_mutex ); } @@ -1784,6 +1781,9 @@ syncprov_detach_op( Operation *op, syncops *so, slap_overinst *on ) LDAP_STAILQ_INSERT_TAIL( &op->o_conn->c_ops, op2, o_next ); so->s_flags |= PS_IS_DETACHED; ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex ); + + /* Prevent anyone else from trying to send a result for this op */ + op->o_abandon = 1; } static int @@ -1902,10 +1902,12 @@ syncprov_op_search( Operation *op, SlapReply *rs ) /* syncprov_findbase expects to be called as a callback... */ sc.sc_private = &opc; opc.son = on; + ldap_pvt_thread_mutex_init( &so.s_mutex ); cb = op->o_callback; op->o_callback = ≻ rs->sr_err = syncprov_findbase( op, &fc ); op->o_callback = cb; + ldap_pvt_thread_mutex_destroy( &so.s_mutex ); if ( rs->sr_err != LDAP_SUCCESS ) { send_ldap_result( op, rs ); -- 2.39.5