Lines Matching refs:op
116 lastmod_search( Operation *op, SlapReply *rs )
118 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
127 rc = test_filter( op, lmi->lmi_e, op->oq_search.rs_filter );
129 rs->sr_attrs = op->ors_attrs;
132 rs->sr_err = send_search_entry( op, rs );
140 send_ldap_result( op, rs );
146 lastmod_compare( Operation *op, SlapReply *rs )
148 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
154 if ( get_assert( op ) &&
155 ( test_filter( op, lmi->lmi_e, get_assertion( op ) ) != LDAP_COMPARE_TRUE ) )
161 rs->sr_err = access_allowed( op, lmi->lmi_e, op->oq_compare.rs_ava->aa_desc,
162 &op->oq_compare.rs_ava->aa_value, ACL_COMPARE, NULL );
170 for ( a = attr_find( lmi->lmi_e->e_attrs, op->oq_compare.rs_ava->aa_desc );
172 a = attr_find( a->a_next, op->oq_compare.rs_ava->aa_desc ) )
176 if ( value_find_ex( op->oq_compare.rs_ava->aa_desc,
179 a->a_nvals, &op->oq_compare.rs_ava->aa_value, op->o_tmpmemctx ) == 0 )
190 send_ldap_result( op, rs );
200 lastmod_exop( Operation *op, SlapReply *rs )
202 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
206 op->o_bd->bd_info = (BackendInfo *)on->on_info;
209 send_ldap_result( op, rs );
216 lastmod_modify( Operation *op, SlapReply *rs )
218 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
224 if ( !acl_check_modlist( op, lmi->lmi_e, op->orm_modlist ) ) {
229 for ( ml = op->orm_modlist; ml; ml = ml->sml_next ) {
275 send_ldap_result( op, rs );
282 lastmod_op_func( Operation *op, SlapReply *rs )
284 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
288 if ( dn_match( &op->o_req_ndn, &lmi->lmi_e->e_nname ) ) {
289 switch ( op->o_tag ) {
291 if ( op->ors_scope != LDAP_SCOPE_BASE ) {
295 return lastmod_search( op, rs );
298 return lastmod_compare( op, rs );
302 if ( exop_is_write( op )) {
307 return lastmod_exop( op, rs );
311 for ( ml = op->orm_modlist; ml; ml = ml->sml_next ) {
322 return lastmod_modify( op, rs );
331 if ( dnIsSuffix( &op->o_req_ndn, &lmi->lmi_e->e_nname ) ) {
338 op->o_bd->bd_info = (BackendInfo *)on->on_info;
340 NULL, &op->o_req_dn, op->ors_scope );
346 send_ldap_result( op, rs );
356 op->o_bd->bd_info = (BackendInfo *)on->on_info;
357 send_ldap_result( op, rs );
364 best_guess( Operation *op,
391 currtime = op->o_time;
403 ber_dupbv( bv_modifiersName, &op->o_dn );
404 ber_dupbv( bv_nmodifiersName, &op->o_ndn );
411 lastmod_update( Operation *op, SlapReply *rs )
413 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
430 switch ( op->o_tag ) {
433 e = op->ora_e;
464 best_guess( op, &bv_entryCSN, &bv_nentryCSN,
468 ber_dupbv( &bv_name, &op->o_req_dn );
469 ber_dupbv( &bv_nname, &op->o_req_ndn );
477 best_guess( op, &bv_entryCSN, &bv_nentryCSN,
481 ber_dupbv( &bv_name, &op->o_req_dn );
482 ber_dupbv( &bv_nname, &op->o_req_ndn );
489 for ( ml = op->orm_modlist; ml; ml = ml->sml_next ) {
529 best_guess( op, NULL, NULL, NULL, NULL, &bv_modifiersName, &bv_nmodifiersName );
533 best_guess( op, &bv_entryCSN, &bv_nentryCSN, NULL, NULL, NULL, NULL );
537 best_guess( op, NULL, NULL, &bv_modifyTimestamp, &bv_nmodifyTimestamp, NULL, NULL );
540 ber_dupbv( &bv_name, &op->o_req_dn );
541 ber_dupbv( &bv_nname, &op->o_req_ndn );
548 if ( op->orr_newSup && !BER_BVISNULL( op->orr_newSup ) ) {
549 build_new_dn( &bv_name, op->orr_newSup, &op->orr_newrdn, NULL );
550 build_new_dn( &bv_nname, op->orr_nnewSup, &op->orr_nnewrdn, NULL );
555 dnParent( &op->o_req_dn, &pdn );
556 build_new_dn( &bv_name, &pdn, &op->orr_newrdn, NULL );
558 dnParent( &op->o_req_ndn, &pdn );
559 build_new_dn( &bv_nname, &pdn, &op->orr_nnewrdn, NULL );
563 BackendInfo *bi = op->o_bd->bd_info;
566 op->o_bd->bd_info = (BackendInfo *)on->on_info->oi_orig;
567 rc = op->o_bd->bd_info->bi_entry_get_rw( op, &bv_name, NULL, NULL, 0, &e );
596 op->o_bd->bd_info->bi_entry_release_rw( op, e, 0 );
599 op->o_bd->bd_info = bi;
605 best_guess( op, &bv_entryCSN, &bv_nentryCSN,
692 lastmod_response( Operation *op, SlapReply *rs )
694 slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
708 switch ( op->o_tag ) {
717 if ( exop_is_write( op ))
733 (void)lastmod_update( op, rs );