Avoid a hang when using at least 3 --verbose options on a transfer with
authorWayne Davison <wayned@samba.org>
Mon, 29 Dec 2008 01:51:36 +0000 (17:51 -0800)
committerWayne Davison <wayned@samba.org>
Mon, 29 Dec 2008 01:51:36 +0000 (17:51 -0800)
a client sender (which includes local copying).

NEWS
flist.c

diff --git a/NEWS b/NEWS
index e7140951f876305b2cce59edb4965c0c310390d8..7a920d0d12417e99fce7717ce2457f94cebd9433 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -42,6 +42,9 @@ Changes since 3.0.4:
     - Fixed a bug when using --sparse on a sparse file that has over 2GB of
       consecutive sparse data.
 
+    - Avoid a hang when using at least 3 --verbose options on a transfer with a
+      client sender (which includes local copying).
+
     - Fixed a problem with --delete-delay reporting an error when it was ready
       to remove a directory that was now gone.
 
diff --git a/flist.c b/flist.c
index 83ce237c6f5390b859f8492a8e99db0cc5838975..8e435a917d1de04909d6bb07bdc1af2699808440 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -2246,6 +2246,7 @@ struct file_list *recv_file_list(int f)
        struct file_list *flist;
        int dstart, flags;
        int64 start_read;
+       int save_verbose = verbose;
 
        if (!first_flist)
                rprintf(FLOG, "receiving file list\n");
@@ -2272,6 +2273,8 @@ struct file_list *recv_file_list(int f)
                dstart = 0;
        }
 
+       if (am_server && verbose > 2)
+               verbose = 2;
        while ((flags = read_byte(f)) != 0) {
                struct file_struct *file;
 
@@ -2296,6 +2299,7 @@ struct file_list *recv_file_list(int f)
                }
        }
        file_total += flist->used;
+       verbose = save_verbose;
 
        if (verbose > 2)
                rprintf(FINFO, "received %d names\n", flist->used);