- /* deref the base if needed */
- suffix_alias( be, &nbase );
-
-#if defined( LDAP_SLAPI )
- slapi_x_backend_set_pb( pb, be );
- slapi_x_connection_set_pb( pb, conn );
- slapi_x_operation_set_pb( pb, op );
- slapi_pblock_set( pb, SLAPI_SEARCH_TARGET, (void *)base.bv_val );
- slapi_pblock_set( pb, SLAPI_SEARCH_SCOPE, (void *)scope );
- slapi_pblock_set( pb, SLAPI_SEARCH_DEREF, (void *)deref );
- slapi_pblock_set( pb, SLAPI_SEARCH_SIZELIMIT, (void *)sizelimit );
- slapi_pblock_set( pb, SLAPI_SEARCH_TIMELIMIT, (void *)timelimit );
- slapi_pblock_set( pb, SLAPI_SEARCH_FILTER, (void *)filter );
- slapi_pblock_set( pb, SLAPI_SEARCH_STRFILTER, (void *)fstr.bv_val );
- slapi_pblock_set( pb, SLAPI_SEARCH_ATTRSONLY, (void *)attrsonly );
- slapi_pblock_set( pb, SLAPI_MANAGEDSAIT, (void *)(1) );
+ if ( SLAP_SHADOW(op->o_bd) && get_dontUseCopy(op) ) {
+ /* don't use shadow copy */
+ BerVarray defref = op->o_bd->be_update_refs
+ ? op->o_bd->be_update_refs : default_referral;