X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Frepl.c;h=122872f92bd42a5ebe2eb49fa53e044396739b96;hb=48b63d4f165269f29c35f89cceddd880c3966ef5;hp=64d3daade42cd013d040f547b1dd441289310cb3;hpb=73db912500316a665638e66e0ff442699b03127b;p=openldap diff --git a/servers/slapd/repl.c b/servers/slapd/repl.c index 64d3daade4..122872f92b 100644 --- a/servers/slapd/repl.c +++ b/servers/slapd/repl.c @@ -8,7 +8,9 @@ #include #include +#ifdef HAVE_SYS_FILE_H #include +#endif #include "slap.h" @@ -16,16 +18,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; @@ -44,10 +45,10 @@ replog( i++ ) { fprintf( fp, "replica: %s\n", be->be_replica[i] ); } - fprintf( fp, "time: %ld\n", (long) currenttime ); + 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; @@ -76,7 +77,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'; @@ -108,10 +110,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" );