X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fsearch.c;h=a162b20068be6af2607b28996036f4123a27a173;hb=f1e2d35bd6cd10afd0a3a1f6041f871e4ec5a69b;hp=6b555b4bf3e9af7cd93ce10fb12f76f6cc93d35d;hpb=47dd8d87327fd5ba219b3fe698b86780a14de697;p=openldap diff --git a/servers/slapd/search.c b/servers/slapd/search.c index 6b555b4bf3..a162b20068 100644 --- a/servers/slapd/search.c +++ b/servers/slapd/search.c @@ -1,7 +1,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 @@ -164,7 +164,8 @@ do_search( op->ors_attrs[i].an_desc = NULL; op->ors_attrs[i].an_oc = NULL; op->ors_attrs[i].an_oc_exclude = 0; - slap_bv2ad(&op->ors_attrs[i].an_name, &op->ors_attrs[i].an_desc, &dummy); + slap_bv2ad(&op->ors_attrs[i].an_name, + &op->ors_attrs[i].an_desc, &dummy); } if( get_ctrls( op, rs, 1 ) != LDAP_SUCCESS ) { @@ -222,12 +223,6 @@ do_search( rs->sr_err = frontendDB->be_search( op, rs ); return_results:; - if ( ( op->o_sync_mode & SLAP_SYNC_PERSIST ) ) { - return rs->sr_err; - } - if ( ( op->o_sync_slog_size != -1 ) ) { - return rs->sr_err; - } if ( !BER_BVISNULL( &op->o_req_dn ) ) { slap_sl_free( op->o_req_dn.bv_val, op->o_tmpmemctx ); } @@ -349,17 +344,7 @@ fe_op_search( Operation *op, SlapReply *rs ) * if we don't hold it. */ - /* Sync control overrides manageDSAit */ - - if ( manageDSAit != SLAP_CONTROL_NONE ) { - if ( op->o_sync_mode & SLAP_SYNC_REFRESH ) { - be_manageDSAit = SLAP_CONTROL_NONE; - } else { - be_manageDSAit = manageDSAit; - } - } else { - be_manageDSAit = manageDSAit; - } + be_manageDSAit = manageDSAit; op->o_bd = select_backend( &op->o_req_ndn, be_manageDSAit, 1 ); if ( op->o_bd == NULL ) { @@ -368,7 +353,9 @@ fe_op_search( Operation *op, SlapReply *rs ) if (!rs->sr_ref) rs->sr_ref = default_referral; rs->sr_err = LDAP_REFERRAL; + op->o_bd = frontendDB; send_ldap_result( op, rs ); + op->o_bd = NULL; if (rs->sr_ref != default_referral) ber_bvarray_free( rs->sr_ref );