write_longint(f, total_read);
write_longint(f, total_written);
write_longint(f, stats.total_size);
+ if (protocol_version >= 29) {
+ write_longint(f, stats.flist_buildtime);
+ write_longint(f, stats.flist_xfertime);
+ }
}
return;
}
total_written = read_longint(f);
total_read = read_longint(f);
stats.total_size = read_longint(f);
+ if (protocol_version >= 29) {
+ stats.flist_buildtime = read_longint(f);
+ stats.flist_xfertime = read_longint(f);
+ }
} else if (write_batch) {
/* The --read-batch process is going to be a client
* receiver, so we need to give it the stats. */
write_longint(batch_fd, total_read);
write_longint(batch_fd, total_written);
write_longint(batch_fd, stats.total_size);
+ if (protocol_version >= 29) {
+ write_longint(batch_fd, stats.flist_buildtime);
+ write_longint(batch_fd, stats.flist_xfertime);
+ }
}
if (do_stats) {
rprintf(FINFO,"Matched data: %.0f bytes\n",
(double)stats.matched_data);
rprintf(FINFO,"File list size: %d\n", stats.flist_size);
+ if (stats.flist_buildtime) {
+ rprintf(FINFO,
+ "File list generation time: %.3f seconds\n",
+ (double)stats.flist_buildtime / 1000);
+ rprintf(FINFO,
+ "File list transfer time: %.3f seconds\n",
+ (double)stats.flist_xfertime / 1000);
+ }
rprintf(FINFO,"Total bytes sent: %.0f\n",
(double)total_written);
rprintf(FINFO,"Total bytes received: %.0f\n",
**/
static void show_malloc_stats(void)
{
-#ifdef HAVE_MALLINFO
+#if HAVE_MALLINFO
struct mallinfo mi;
mi = mallinfo();
rprintf(FINFO, "\n" RSYNC_NAME "[%d] (%s%s%s) heap statistics:\n",
- getpid(),
- am_server ? "server " : "",
- am_daemon ? "daemon " : "",
- who_am_i());
- rprintf(FINFO, " arena: %10d (bytes from sbrk)\n", mi.arena);
- rprintf(FINFO, " ordblks: %10d (chunks not in use)\n", mi.ordblks);
- rprintf(FINFO, " smblks: %10d\n", mi.smblks);
- rprintf(FINFO, " hblks: %10d (chunks from mmap)\n", mi.hblks);
- rprintf(FINFO, " hblkhd: %10d (bytes from mmap)\n", mi.hblkhd);
- rprintf(FINFO, " allmem: %10d (bytes from sbrk + mmap)\n",
- mi.arena + mi.hblkhd);
- rprintf(FINFO, " usmblks: %10d\n", mi.usmblks);
- rprintf(FINFO, " fsmblks: %10d\n", mi.fsmblks);
- rprintf(FINFO, " uordblks: %10d (bytes used)\n", mi.uordblks);
- rprintf(FINFO, " fordblks: %10d (bytes free)\n", mi.fordblks);
- rprintf(FINFO, " keepcost: %10d (bytes in releasable chunk)\n", mi.keepcost);
+ getpid(), am_server ? "server " : "",
+ am_daemon ? "daemon " : "", who_am_i());
+ rprintf(FINFO, " arena: %10ld (bytes from sbrk)\n",
+ (long)mi.arena);
+ rprintf(FINFO, " ordblks: %10ld (chunks not in use)\n",
+ (long)mi.ordblks);
+ rprintf(FINFO, " smblks: %10ld\n",
+ (long)mi.smblks);
+ rprintf(FINFO, " hblks: %10ld (chunks from mmap)\n",
+ (long)mi.hblks);
+ rprintf(FINFO, " hblkhd: %10ld (bytes from mmap)\n",
+ (long)mi.hblkhd);
+ rprintf(FINFO, " allmem: %10ld (bytes from sbrk + mmap)\n",
+ (long)mi.arena + mi.hblkhd);
+ rprintf(FINFO, " usmblks: %10ld\n",
+ (long)mi.usmblks);
+ rprintf(FINFO, " fsmblks: %10ld\n",
+ (long)mi.fsmblks);
+ rprintf(FINFO, " uordblks: %10ld (bytes used)\n",
+ (long)mi.uordblks);
+ rprintf(FINFO, " fordblks: %10ld (bytes free)\n",
+ (long)mi.fordblks);
+ rprintf(FINFO, " keepcost: %10ld (bytes in releasable chunk)\n",
+ (long)mi.keepcost);
#endif /* HAVE_MALLINFO */
}
io_start_buffering_in();
if (delete_mode && !delete_excluded)
recv_filter_list(f_in);
+ if (cvs_exclude)
+ add_cvs_excludes();
if (filesfrom_fd >= 0) {
/* We need to send the files-from names to the sender at the