X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Frepl.c;h=122872f92bd42a5ebe2eb49fa53e044396739b96;hb=48b63d4f165269f29c35f89cceddd880c3966ef5;hp=c1bcff91d526c8ab68e7d7054be00167d854b8ca;hpb=72ba4cfb715001d30a6e48a2d7012f060f29d684;p=openldap diff --git a/servers/slapd/repl.c b/servers/slapd/repl.c index c1bcff91d5..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'; @@ -96,7 +98,7 @@ replog( tmp = entry2str( e, &len, 0 ); while ( (tmp = strchr( tmp, '\n' )) != NULL ) { tmp++; - if ( ! isspace( *tmp ) ) + if ( ! isspace( (unsigned char) *tmp ) ) break; } fprintf( fp, "%s", tmp ); @@ -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" );