diff --git a/servers/slapd/back-perl/modrdn.c b/servers/slapd/back-perl/modrdn.c index 1542956c88a6adcc0ba2bfe8daf1dab50fa4f5bb..12808fdf5ee82093b4694cd5ac6eda9aa22d4615 100644 --- a/servers/slapd/back-perl/modrdn.c +++ b/servers/slapd/back-perl/modrdn.c @@ -60,6 +60,9 @@ perl_back_modrdn( XPUSHs(sv_2mortal(newSVpv( dn , 0 ))); XPUSHs(sv_2mortal(newSVpv( newrdn , 0 ))); XPUSHs(sv_2mortal(newSViv( deleteoldrdn ))); + if ( newSuperior != NULL ) { + XPUSHs(sv_2mortal(newSVpv( newSuperior , 0 ))); + } PUTBACK ; count = perl_call_method("modrdn", G_SCALAR); diff --git a/servers/slapd/back-shell/modrdn.c b/servers/slapd/back-shell/modrdn.c index 22feda1e5d9769bf2b021208998b0d33be1a3339..d42742ca4ccc6f04813ffe2142c80f139612a3cd 100644 --- a/servers/slapd/back-shell/modrdn.c +++ b/servers/slapd/back-shell/modrdn.c @@ -57,6 +57,9 @@ shell_back_modrdn( fprintf( wfp, "dn: %s\n", dn ); fprintf( wfp, "newrdn: %s\n", newrdn ); fprintf( wfp, "deleteoldrdn: %d\n", deleteoldrdn ? 1 : 0 ); + if (newSuperior != NULL) { + fprintf( wfp, "newSuperior: %s\n", newSuperior ); + } fclose( wfp ); /* read in the results and send them along */ diff --git a/servers/slapd/back-tcl/tcl_modrdn.c b/servers/slapd/back-tcl/tcl_modrdn.c index 1dac7444c84017d0915dbee2d5f3bb9933fa7a14..e6af8b2b0340dd6fa9a0e6942ec6c4e1c0ad27ac 100644 --- a/servers/slapd/back-tcl/tcl_modrdn.c +++ b/servers/slapd/back-tcl/tcl_modrdn.c @@ -1,6 +1,6 @@ /* modrdn.c - tcl modify rdn routines * - * $Id: tcl_modrdn.c,v 1.5 1999/02/28 04:55:49 bcollins Exp $ + * $Id: tcl_modrdn.c,v 1.6 1999/03/05 02:42:46 gomez Exp $ * * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved. * @@ -55,10 +55,17 @@ tcl_back_modrdn ( suf_tcl = Tcl_Merge (i, be->be_suffix); command = (char *) ch_malloc (strlen (ti->ti_modrdn) + strlen (suf_tcl) - + strlen (dn) + strlen (newrdn) + 64); - sprintf (command, "%s MODRDN {%ld} {%s} {%s} {%s} %d", - ti->ti_add, op->o_msgid, suf_tcl, dn, newrdn, deleteoldrdn - ? 1 : 0); + + strlen (dn) + strlen (newrdn) + + (newSuperior ? strlen(newSuperior) : 0) + 64); + if ( newSuperior ) { + sprintf (command, "%s MODRDN {%ld} {%s} {%s} {%s} %d {%s}", + ti->ti_add, op->o_msgid, suf_tcl, dn, newrdn, + deleteoldrdn ? 1 : 0, newSuperior ); + } else { + sprintf (command, "%s MODRDN {%ld} {%s} {%s} {%s} %d", + ti->ti_add, op->o_msgid, suf_tcl, dn, newrdn, + deleteoldrdn ? 1 : 0 ); + } Tcl_Free (suf_tcl); ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);