Lines Matching refs:op
37 static int slapi_over_response( Operation *op, SlapReply *rs );
38 static int slapi_over_cleanup( Operation *op, SlapReply *rs );
41 slapi_over_pblock_new( Operation *op, SlapReply *rs )
46 pb->pb_op = op;
47 pb->pb_conn = op->o_conn;
51 PBLOCK_ASSERT_OP( pb, op->o_tag );
57 slapi_op_internal_p( Operation *op, SlapReply *rs, slap_callback *cb )
66 * op plugins
68 for ( pcb = op->o_callback; pcb != NULL; pcb = pcb->sc_next ) {
79 pb = slapi_over_pblock_new( op, rs );
85 cb->sc_next = op->o_callback;
86 op->o_callback = cb;
143 slapi_over_aux_operational( Operation *op, SlapReply *rs )
149 if ( slapi_op_internal_p( op, rs, NULL ) ) {
153 ctx.cac_pb = slapi_over_pblock_new( op, rs );
154 ctx.cac_op = op;
191 Operation *op;
194 op = pb->pb_op;
196 if ( !be_match( op->o_bd, frontendDB ) ) {
200 rc = slapi_int_call_plugins( op->o_bd, type, pb );
207 slapi_over_search( Operation *op, SlapReply *rs, int type )
215 pb = slapi_over_pblock_new( op, rs );
232 slapi_over_result( Operation *op, SlapReply *rs, int type )
234 Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
245 slapi_op_bind_callback( Operation *op, SlapReply *rs, int prc )
254 send_ldap_result( op, rs );
259 BER_BVZERO( &op->orb_edn );
266 if ( BER_BVISNULL( &op->o_conn->c_ndn ) && prc == 1 ) {
270 ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
271 if ( !BER_BVISEMPTY( &op->o_conn->c_ndn ) ) {
273 ber_sockbuf_ctrl( op->o_conn->c_sb,
276 ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
281 op->o_log_prefix,
282 BER_BVISNULL( &op->o_conn->c_dn )
283 ? "<empty>" : op->o_conn->c_dn.bv_val,
284 BER_BVISNULL( &op->orb_mech )
285 ? "<empty>" : op->orb_mech.bv_val, 0, 0 );
296 slapi_op_search_callback( Operation *op, SlapReply *rs, int prc )
298 Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
308 slapi_int_call_plugins( op->o_bd, SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN, pb ) == 0 ) {
313 op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
314 filter2bv_x( op, op->ors_filter, &op->ors_filterstr );
402 slap_operation_t op;
406 op = op_bind;
409 op = op_add;
412 op = op_delete;
415 op = op_modrdn;
418 op = op_modify;
421 op = op_compare;
424 op = op_search;
427 op = op_unbind;
430 op = op_last;
434 return op;
440 slapi_over_merge_controls( Operation *op, SlapReply *rs )
442 Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
459 ctrls = (LDAPControl **) op->o_tmpalloc(
461 op->o_tmpmemctx );
479 slapi_over_unmerge_controls( Operation *op, SlapReply *rs )
481 Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
491 op->o_tmpfree( rs->sr_ctrls, op->o_tmpmemctx );
498 slapi_over_response( Operation *op, SlapReply *rs )
500 Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
508 rc = slapi_over_result( op, rs, SLAPI_PLUGIN_PRE_RESULT_FN );
511 rc = slapi_over_search( op, rs, SLAPI_PLUGIN_PRE_ENTRY_FN );
514 rc = slapi_over_search( op, rs, SLAPI_PLUGIN_PRE_REFERRAL_FN );
521 slapi_over_merge_controls( op, rs );
527 slapi_over_cleanup( Operation *op, SlapReply *rs )
529 Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
532 slapi_over_unmerge_controls( op, rs );
539 rc = slapi_over_result( op, rs, SLAPI_PLUGIN_POST_RESULT_FN );
542 rc = slapi_over_search( op, rs, SLAPI_PLUGIN_POST_ENTRY_FN );
545 rc = slapi_over_search( op, rs, SLAPI_PLUGIN_POST_REFERRAL_FN );
556 slapi_op_func( Operation *op, SlapReply *rs )
578 which = slapi_tag2op( op->o_tag );
590 internal_op = slapi_op_internal_p( op, rs, &cb );
607 pb = SLAPI_OPERATION_PBLOCK( op );
631 rc = (opinfo->soi_callback)( op, rs, rc );
644 on = (slap_overinst *)op->o_bd->bd_info;
647 rc = overlay_op_walk( op, rs, which, oi, on->on_next );
660 op->o_callback = cb.sc_next;
666 slapi_over_extended( Operation *op, SlapReply *rs )
674 slapi_int_get_extop_plugin( &op->ore_reqoid, &callback );
679 internal_op = slapi_op_internal_p( op, rs, &cb );
684 pb = SLAPI_OPERATION_PBLOCK( op );
696 send_ldap_extended( op, rs );
709 op->o_callback = cb.sc_next;
716 Operation *op,
730 internal_op = slapi_op_internal_p( op, &rs, &cb );
735 pb = SLAPI_OPERATION_PBLOCK( op );
737 rc = slapi_int_access_allowed( op, e, desc, val, access, state );
746 op->o_callback = cb.sc_next;
753 Operation *op,
763 BackendDB *be = op->o_bd;
767 op->o_bd = select_backend( gr_ndn, 0 );
769 for ( g = op->o_groups; g; g = g->ga_next ) {
770 if ( g->ga_be != op->o_bd || g->ga_oc != group_oc ||
788 rc = be_entry_get_rw( op, gr_ndn, group_oc, group_at, 0, &e );
794 internal_op = slapi_op_internal_p( op, &rs, &cb );
799 pb = SLAPI_OPERATION_PBLOCK( op );
821 be_entry_release_r( op, e );
824 op->o_callback = cb.sc_next;
829 if ( op->o_tag != LDAP_REQ_BIND && !op->o_do_not_cache &&
831 g = op->o_tmpalloc( sizeof( GroupAssertion ) + gr_ndn->bv_len,
832 op->o_tmpmemctx );
833 g->ga_be = op->o_bd;
839 g->ga_next = op->o_groups;
840 op->o_groups = g;
847 op->o_bd = be;