mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-03 20:40:05 -05:00
ITS#5319 allow rename to same DN
This commit is contained in:
parent
37d65aed6e
commit
25ba37cc35
1 changed files with 24 additions and 0 deletions
|
|
@ -559,6 +559,9 @@ retry: /* transaction retry */
|
|||
case DB_NOTFOUND:
|
||||
break;
|
||||
case 0:
|
||||
/* Allow rename to same DN */
|
||||
if ( nei == ei )
|
||||
break;
|
||||
rs->sr_err = LDAP_ALREADY_EXISTS;
|
||||
goto return_results;
|
||||
default:
|
||||
|
|
@ -588,6 +591,27 @@ retry: /* transaction retry */
|
|||
}
|
||||
}
|
||||
|
||||
/* Rename to exactly the same name, noop */
|
||||
if ( nei == ei && bvmatch( &e->e_name, &new_dn )) {
|
||||
rs->sr_err = LDAP_SUCCESS;
|
||||
if ( op->o_postread ) {
|
||||
if( postread_ctrl == NULL ) {
|
||||
postread_ctrl = &ctrls[num_ctrls++];
|
||||
ctrls[num_ctrls] = NULL;
|
||||
}
|
||||
if( slap_read_controls( op, rs, e,
|
||||
&slap_post_read_bv, postread_ctrl ) )
|
||||
{
|
||||
Debug( LDAP_DEBUG_TRACE,
|
||||
"<=- " LDAP_XSTRING(bdb_modrdn)
|
||||
": post-read failed!\n", 0, 0, 0 );
|
||||
}
|
||||
}
|
||||
TXN_ABORT( ltid );
|
||||
ltid = NULL;
|
||||
goto return_results;
|
||||
}
|
||||
|
||||
/* nested transaction */
|
||||
rs->sr_err = TXN_BEGIN( bdb->bi_dbenv, ltid, <2, bdb->bi_db_opflags );
|
||||
rs->sr_text = NULL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue