Need to output the "failed verification" error before sending the
authorWayne Davison <wayned@samba.org>
Thu, 22 Jul 2004 08:16:35 +0000 (08:16 +0000)
committerWayne Davison <wayned@samba.org>
Thu, 22 Jul 2004 08:16:35 +0000 (08:16 +0000)
MSG_REDO so that the output comes out in the right order.

receiver.c

index 1fe9733..50fe2e5 100644 (file)
@@ -552,25 +552,27 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
                cleanup_disable();
 
                if (!recv_ok) {
-                       int msgtype;
-                       char *redostr;
+                       int msgtype = csum_length == SUM_LENGTH || read_batch ?
+                               FERROR : FINFO;
+                       if (msgtype == FERROR || verbose) {
+                               char *errstr, *redostr;
+                               char *keptstr = keep_partial || inplace ?
+                                       "retain" : "discard";
+                               if (msgtype == FERROR) {
+                                       errstr = "ERROR";
+                                       redostr = "";
+                               } else {
+                                       errstr = "WARNING";
+                                       redostr = " (will try again)";
+                               }
+                               rprintf(msgtype,
+                                       "%s: %s failed verification -- update %sed%s.\n",
+                                       errstr, fname, keptstr, redostr);
+                       }
                        if (csum_length != SUM_LENGTH) {
                                char buf[4];
                                SIVAL(buf, 0, i);
                                send_msg(MSG_REDO, buf, 4);
-                               msgtype = read_batch ? FERROR : FINFO;
-                               redostr = read_batch ? " Redo doubtful."
-                                                    : " Redo pending.";
-                       } else {
-                               msgtype = FERROR;
-                               redostr = "";
-                       }
-                       if (verbose || read_batch) {
-                               rprintf(msgtype,
-                                       "%s: %s failed verification. Update %sed.%s\n",
-                                       msgtype == FERROR ? "ERROR" : "WARNING",
-                                       fname, keep_partial || inplace ?
-                                       "retain" : "discard", redostr);
                        }
                }
        }