diff options
author | Ryo Nakamura <upa@haeena.net> | 2023-09-13 14:35:44 +0900 |
---|---|---|
committer | Ryo Nakamura <upa@haeena.net> | 2023-11-01 19:54:18 +0900 |
commit | 139ba12f1a7c35a572d33991f4c3960f61490dfe (patch) | |
tree | 67b1b88c5bb1119e7d8d1f54b36f1ef8cf29ff0a /src/mscp.c | |
parent | cfbadebe6dfeb148d687df3bc91448674054cb82 (diff) |
write total transferred bytes and number of files
at the end of output when serverity is notice.
Diffstat (limited to 'src/mscp.c')
-rw-r--r-- | src/mscp.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -554,6 +554,8 @@ int mscp_start(struct mscp *m) int mscp_join(struct mscp *m) { struct mscp_thread *t; + struct path *p; + size_t done = 0, nr_copied = 0, nr_tobe_copied = 0; int n, ret = 0; /* waiting for scan thread joins... */ @@ -563,6 +565,7 @@ int mscp_join(struct mscp *m) RWLOCK_READ_ACQUIRE(&m->thread_rwlock); list_for_each_entry(t, &m->thread_list, list) { pthread_join(t->tid, NULL); + done += t->done; if (t->ret < 0) ret = t->ret; if (t->sftp) { @@ -577,6 +580,17 @@ int mscp_join(struct mscp *m) m->first = NULL; } + /* count up number of transferred files */ + list_for_each_entry(p, &m->path_list, list) { + nr_tobe_copied++; + if (p->state == FILE_STATE_DONE) { + nr_copied++; + } + } + + mpr_notice(m->msg_fp, "%lu/%lu bytes copied for %lu/%lu files\n", + done, m->total_bytes, nr_copied, nr_tobe_copied); + return ret; } |