- /* deref the base if needed */
- suffix_alias( be, &nbase );
-
-#if defined( LDAP_SLAPI )
- slapi_pblock_set( pb, SLAPI_BACKEND, (void *)be );
- slapi_pblock_set( pb, SLAPI_CONNECTION, (void *)conn );
- slapi_pblock_set( pb, SLAPI_OPERATION, (void *)op );
- slapi_pblock_set( pb, SLAPI_BIND_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_REQCONTROLS, (void *)op->o_ctrls );
- slapi_pblock_set( pb, SLAPI_MANAGEDSAIT, (void *)(1) );
-
- rc = doPluginFNs( be, SLAPI_PLUGIN_PRE_SEARCH_FN, pb );
- if ( rc != 0 && rc != LDAP_OTHER ) {
- /*
- * either there is no preOp (search) plugins
- * or a plugin failed. Just log it
- *
- * FIXME: is this correct?
- */
-#ifdef NEW_LOGGING
- LDAP_LOG(( "operation", LDAP_LEVEL_INFO, "do_search: search preOps failed\n"));
-#else
- Debug(LDAP_DEBUG_TRACE, "search preOps failed.\n", 0, 0, 0);
-#endif
- }
-#endif /* defined( LDAP_SLAPI ) */
-
- /* actually do the search and send the result(s) */
- if ( be->be_search ) {
- (*be->be_search)( be, conn, op, &pbase, &nbase,
- scope, deref, sizelimit,
- timelimit, filter, &fstr, an, attrsonly );
- } else {
- send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
- NULL, "operation not supported within namingContext",
- NULL, NULL );
- }