summaryrefslogtreecommitdiff
path: root/src/mscp.c
diff options
context:
space:
mode:
authorRyo Nakamura <upa@haeena.net>2023-09-13 14:35:44 +0900
committerRyo Nakamura <upa@haeena.net>2023-11-01 19:54:18 +0900
commit139ba12f1a7c35a572d33991f4c3960f61490dfe (patch)
tree67b1b88c5bb1119e7d8d1f54b36f1ef8cf29ff0a /src/mscp.c
parentcfbadebe6dfeb148d687df3bc91448674054cb82 (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.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mscp.c b/src/mscp.c
index c355abb..5079ab7 100644
--- a/src/mscp.c
+++ b/src/mscp.c
@@ -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;
}