X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fsearch.c;h=a162b20068be6af2607b28996036f4123a27a173;hb=ac3ad635ef0883d96b5424f96b2c43e13b0ad659;hp=e1b43f3ef9ad2fea2175449936a335e7292fba35;hpb=fda3d6260e25f1d0b9c035b0d520b2c9d0f22e49;p=openldap diff --git a/servers/slapd/search.c b/servers/slapd/search.c index e1b43f3ef9..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 @@ -147,7 +147,7 @@ do_search( goto return_results; } filter2bv_x( op, op->ors_filter, &op->ors_filterstr ); - + Debug( LDAP_DEBUG_ARGS, " filter: %s\n", !BER_BVISEMPTY( &op->ors_filterstr ) ? op->ors_filterstr.bv_val : "empty", 0, 0 ); @@ -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 ); } @@ -335,12 +330,12 @@ fe_op_search( Operation *op, SlapReply *rs ) break; } - if( BER_BVISEMPTY( &op->o_req_ndn ) && !BER_BVISEMPTY( &SLAPD_GLOBAL(default_search_nbase) ) ) { + if( BER_BVISEMPTY( &op->o_req_ndn ) && !BER_BVISEMPTY( &default_search_nbase ) ) { slap_sl_free( op->o_req_dn.bv_val, op->o_tmpmemctx ); slap_sl_free( op->o_req_ndn.bv_val, op->o_tmpmemctx ); - ber_dupbv_x( &op->o_req_dn, &SLAPD_GLOBAL(default_search_base), op->o_tmpmemctx ); - ber_dupbv_x( &op->o_req_ndn, &SLAPD_GLOBAL(default_search_nbase), op->o_tmpmemctx ); + ber_dupbv_x( &op->o_req_dn, &default_search_base, op->o_tmpmemctx ); + ber_dupbv_x( &op->o_req_ndn, &default_search_nbase, op->o_tmpmemctx ); } /* @@ -349,28 +344,20 @@ fe_op_search( Operation *op, SlapReply *rs ) * if we don't hold it. */ - /* Sync control overrides manageDSAit */ - - if ( manageDSAit != SLAP_NO_CONTROL ) { - if ( op->o_sync_mode & SLAP_SYNC_REFRESH ) { - be_manageDSAit = SLAP_NO_CONTROL; - } 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 ) { - rs->sr_ref = referral_rewrite( SLAPD_GLOBAL(default_referral), + rs->sr_ref = referral_rewrite( default_referral, NULL, &op->o_req_dn, op->ors_scope ); - if (!rs->sr_ref) rs->sr_ref = SLAPD_GLOBAL(default_referral); + 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 != SLAPD_GLOBAL(default_referral)) + if (rs->sr_ref != default_referral) ber_bvarray_free( rs->sr_ref ); rs->sr_ref = NULL; goto return_results;