-
- if (count == 0) {
- return 0;
- }
- if (count == 1) {
-#ifdef NEW_LOGGING
- LDAP_LOG( BACK_META, DETAIL1,
- "DELETING ENTRY TEMPLATE=%s\n",
- attr->a_vals[0].bv_val, 0, 0 );
-#else
- Debug( LDAP_DEBUG_ANY, "DELETING ENTRY TEMPLATE=%s\n",
- attr->a_vals[0].bv_val, 0, 0 );
-#endif
-
- op_tmp.o_req_dn = rs->sr_entry->e_name;
- op_tmp.o_req_ndn = rs->sr_entry->e_nname;
-
- if (op->o_bd->be_delete(&op_tmp, rs) == LDAP_SUCCESS) {
- info->deleted++;
- }
- return 0;
- }
-
- vals[0] = *info->uuid;
- vals[1].bv_val = NULL;
- vals[1].bv_len = 0;
- mod.sml_op = LDAP_MOD_DELETE;
- mod.sml_desc = ad_queryid;
- mod.sml_type = ad_queryid->ad_cname;
- mod.sml_bvalues = vals;
- mod.sml_next = NULL;
-#ifdef NEW_LOGGING
- LDAP_LOG( BACK_META, DETAIL1,
- "REMOVING TEMP ATTR : TEMPLATE=%s\n",
- attr->a_vals[0].bv_val, 0, 0 );
-#else
- Debug( LDAP_DEBUG_ANY, "REMOVING TEMP ATTR : TEMPLATE=%s\n",
- attr->a_vals[0].bv_val, 0, 0 );
-#endif
-
- op_tmp.o_req_dn = rs->sr_entry->e_name;
- op_tmp.o_req_ndn = rs->sr_entry->e_nname;
- op_tmp.orm_modlist = &mod;
-
- op->o_bd->be_modify( &op_tmp, &sreply );
+ if ( count == 0 ) return 0;
+ qi = op->o_tmpalloc( sizeof( struct query_info ), op->o_tmpmemctx );
+ qi->next = op->o_callback->sc_private;
+ op->o_callback->sc_private = qi;
+ ber_dupbv_x( &qi->xdn, &rs->sr_entry->e_nname, op->o_tmpmemctx );
+ qi->del = ( count == 1 );