mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-24 23:05:52 -04:00
The last MSG_DONE from the receiver to the generator is now followed
by the stats.total_read value so that the generator can set its value to that of the receiver. This makes log_exit() log the right value when we're on the server side.
This commit is contained in:
6
io.c
6
io.c
@@ -288,13 +288,17 @@ static void read_msg_fd(void)
|
||||
|
||||
switch (tag) {
|
||||
case MSG_DONE:
|
||||
if (len != 0 || !am_generator) {
|
||||
if (len < 0 || len > 1 || !am_generator) {
|
||||
invalid_msg:
|
||||
rprintf(FERROR, "invalid message %d:%d [%s%s]\n",
|
||||
tag, len, who_am_i(),
|
||||
incremental ? "/incremental" : "");
|
||||
exit_cleanup(RERR_STREAMIO);
|
||||
}
|
||||
if (len) {
|
||||
readfd(fd, buf, len);
|
||||
stats.total_read = read_longint(fd);
|
||||
}
|
||||
done_cnt++;
|
||||
break;
|
||||
case MSG_REDO:
|
||||
|
||||
3
main.c
3
main.c
@@ -727,7 +727,8 @@ static int do_recv(int f_in, int f_out, char *local_name)
|
||||
io_flush(FULL_FLUSH);
|
||||
handle_stats(f_in);
|
||||
|
||||
send_msg(MSG_DONE, "", 0);
|
||||
send_msg(MSG_DONE, "", 1);
|
||||
write_longint(error_pipe[1], stats.total_read);
|
||||
io_flush(FULL_FLUSH);
|
||||
|
||||
/* Handle any keep-alive packets from the post-processing work
|
||||
|
||||
Reference in New Issue
Block a user