Home | History | Annotate | Download | only in back-mdb

Lines Matching refs:rs

31 mdb_delete( Operation *op, SlapReply *rs )
57 rs->sr_err = mdb_opinfo_get( op, mdb, 0, &moi );
58 rs->sr_text = NULL;
59 if( rs->sr_err != 0 ) {
62 "%s (%d)\n", mdb_strerror(rs->sr_err), rs->sr_err );
63 rs->sr_err = LDAP_OTHER;
64 rs->sr_text = "internal error";
79 rs->sr_err = mdb_cursor_open( txn, mdb->mi_dn2id, &mc );
80 if ( rs->sr_err ) {
81 rs->sr_err = LDAP_OTHER;
82 rs->sr_text = "internal error";
90 rs->sr_err = mdb_dn2entry( op, txn, mc, &pdn, &p, NULL, 1 );
91 switch( rs->sr_err ) {
96 rs->sr_text = "ldap server busy";
99 rs->sr_err = LDAP_OTHER;
100 rs->sr_text = "internal error";
103 if ( rs->sr_err == MDB_NOTFOUND ) {
109 rs->sr_matched = ch_strdup( p->e_name.bv_val );
112 rs->sr_ref = referral_rewrite( ref, &p->e_name,
116 rs->sr_ref = NULL;
119 rs->sr_ref = referral_rewrite( default_referral, NULL,
127 rs->sr_err = LDAP_REFERRAL;
128 rs->sr_flags = REP_MATCHED_MUSTBEFREED | REP_REF_MUSTBEFREED;
134 rs->sr_err = mdb_dn2entry( op, txn, mc, &op->o_req_ndn, &e, NULL, 0 );
135 switch( rs->sr_err ) {
142 rs->sr_text = "ldap server busy";
145 rs->sr_err = LDAP_OTHER;
146 rs->sr_text = "internal error";
151 if ( rs->sr_err == MDB_NOTFOUND || ( !manageDSAit && is_entry_glue( e ))) {
156 rs->sr_ref = NULL;
158 rs->sr_matched = ch_strdup( e->e_dn );
161 rs->sr_ref = referral_rewrite( ref, &e->e_name,
169 rs->sr_err = LDAP_REFERRAL;
170 rs->sr_flags = REP_MATCHED_MUSTBEFREED | REP_REF_MUSTBEFREED;
176 rs->sr_err = access_allowed( op, p,
179 if ( !rs->sr_err ) {
183 rs->sr_err = LDAP_INSUFFICIENT_ACCESS;
184 rs->sr_text = "no write access to parent";
196 rs->sr_err = access_allowed( op, p,
201 if ( !rs->sr_err ) {
205 rs->sr_err = LDAP_INSUFFICIENT_ACCESS;
206 rs->sr_text = "no write access to parent";
214 rs->sr_err = LDAP_INSUFFICIENT_ACCESS;
223 rs->sr_err = LDAP_ASSERTION_FAILED;
227 rs->sr_err = access_allowed( op, e,
230 if ( !rs->sr_err ) {
234 rs->sr_err = LDAP_INSUFFICIENT_ACCESS;
235 rs->sr_text = "no write access to entry";
241 rs->sr_ref = get_entry_referrals( op, e );
246 rs->sr_err = LDAP_REFERRAL;
247 rs->sr_matched = ch_strdup( e->e_name.bv_val );
248 rs->sr_flags = REP_MATCHED_MUSTBEFREED | REP_REF_MUSTBEFREED;
258 if( slap_read_controls( op, rs, e,
272 rs->sr_text = NULL;
275 rs->sr_err = mdb_dn2id_children( op, txn, e );
276 if( rs->sr_err != MDB_NOTFOUND ) {
277 switch( rs->sr_err ) {
283 rs->sr_err = LDAP_NOT_ALLOWED_ON_NONLEAF;
284 rs->sr_text = "subordinate objects must be deleted first";
290 mdb_strerror(rs->sr_err), rs->sr_err );
291 rs->sr_err = LDAP_OTHER;
292 rs->sr_text = "internal error";
298 rs->sr_err = mdb_dn2id_delete( op, mc, e->e_id, 1 );
300 if ( rs->sr_err != 0 ) {
303 "%s (%d)\n", mdb_strerror(rs->sr_err), rs->sr_err );
304 rs->sr_text = "DN index delete failed";
305 rs->sr_err = LDAP_OTHER;
310 rs->sr_err = mdb_index_entry_del( op, txn, e );
311 if ( rs->sr_err != LDAP_SUCCESS ) {
314 "%s (%d)\n", mdb_strerror(rs->sr_err), rs->sr_err );
315 rs->sr_text = "entry index delete failed";
316 rs->sr_err = LDAP_OTHER;
327 rs->sr_err = mdb_index_values( op, txn, slap_schema.si_ad_entryCSN,
329 if ( rs->sr_err != LDAP_SUCCESS ) {
330 rs->sr_text = "entryCSN index update failed";
331 rs->sr_err = LDAP_OTHER;
337 rs->sr_err = mdb_id2entry_delete( op->o_bd, txn, e );
338 if ( rs->sr_err != 0 ) {
341 "%s (%d)\n", mdb_strerror(rs->sr_err), rs->sr_err );
342 rs->sr_text = "entry delete failed";
343 rs->sr_err = LDAP_OTHER;
349 rs->sr_err = mdb_dn2id_children( op, txn, p );
350 if ( rs->sr_err != MDB_NOTFOUND ) {
351 switch( rs->sr_err ) {
358 mdb_strerror(rs->sr_err), rs->sr_err );
359 rs->sr_err = LDAP_OTHER;
360 rs->sr_text = "internal error";
374 rs->sr_err = LDAP_X_NO_OPERATION;
378 rs->sr_err = mdb_txn_commit( txn );
383 if( rs->sr_err != 0 ) {
387 mdb_strerror(rs->sr_err), rs->sr_err );
388 rs->sr_err = LDAP_OTHER;
389 rs->sr_text = "commit failed";
398 rs->sr_err = LDAP_SUCCESS;
399 rs->sr_text = NULL;
400 if( num_ctrls ) rs->sr_ctrls = ctrls;
403 if ( rs->sr_err == LDAP_SUCCESS && parent_is_glue && parent_is_leaf ) {
427 send_ldap_result( op, rs );
436 if( rs->sr_err == LDAP_SUCCESS && mdb->bi_txn_cp_kbyte ) {
441 return rs->sr_err;