X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Frepl.c;h=8f8b6439221e8c499a3e2e655c588532176c4082;hb=6147119dc8526a758a7c576940fe8483e2b93915;hp=f0e79084ad9594d703cbfa51d777c4e7542d23e3;hpb=8f02beada9ef54a5264baae6352fda7c7fbcb63b;p=openldap diff --git a/servers/slapd/repl.c b/servers/slapd/repl.c index f0e79084ad..8f8b643922 100644 --- a/servers/slapd/repl.c +++ b/servers/slapd/repl.c @@ -1,4 +1,8 @@ /* repl.c - log modifications for replication purposes */ +/* + * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #include "portable.h" @@ -18,16 +22,15 @@ void replog( Backend *be, - int optype, + Operation *op, char *dn, - void *change, - int flag + void *change ) { LDAPModList *ml; Entry *e; - char *newrdn, *tmp; - int deleteoldrdn; + struct replog_moddn *moddn; + char *tmp; FILE *fp, *lfp; int len, i; @@ -49,7 +52,7 @@ replog( fprintf( fp, "time: %ld\n", (long) slap_get_time() ); fprintf( fp, "dn: %s\n", dn ); - switch ( optype ) { + switch ( op->o_tag ) { case LDAP_REQ_MODIFY: fprintf( fp, "changetype: modify\n" ); ml = change; @@ -78,7 +81,8 @@ replog( buf = (char *) ch_malloc( len ); bufp = buf; - ldif_put_type_and_value( &bufp, ml->ml_type, + ldif_sput( &bufp, LDIF_PUT_VALUE, + ml->ml_type, ml->ml_bvalues[i]->bv_val, ml->ml_bvalues[i]->bv_len ); *bufp = '\0'; @@ -110,10 +114,13 @@ replog( break; case LDAP_REQ_MODRDN: - newrdn = change; + moddn = change; fprintf( fp, "changetype: modrdn\n" ); - fprintf( fp, "newrdn: %s\n", newrdn ); - fprintf( fp, "deleteoldrdn: %d\n", flag ? 1 : 0 ); + fprintf( fp, "newrdn: %s\n", moddn->newrdn ); + fprintf( fp, "deleteoldrdn: %d\n", moddn->deloldrdn ? 1 : 0 ); + if( moddn->newsup != NULL ) { + fprintf( fp, "newsuperior: %s\n", moddn->newsup ); + } } fprintf( fp, "\n" );