aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2008-01-27 14:39:49 -0800
committerWayne Davison <wayned@samba.org>2008-01-27 14:40:50 -0800
commit964244b90d8d7ae7fe4d99b4e399c1607c4966e3 (patch)
tree67633f521757e8bfee4d3a73b9fd9302cbbaf410
parenta7c1fa0049d2fbee5fde35b4cb2fbea4bd7545db (diff)
downloadandroid_external_rsync-964244b90d8d7ae7fe4d99b4e399c1607c4966e3.tar.gz
android_external_rsync-964244b90d8d7ae7fe4d99b4e399c1607c4966e3.tar.bz2
android_external_rsync-964244b90d8d7ae7fe4d99b4e399c1607c4966e3.zip
Fixed several glitches with failed updates and batch files:
- Correctly identify when a missing batch update is for a resend. - Made a missing batch update an xfer error. - Made a failed redo an xfer error. - Identify a failed transfer file consistently when it is a solo file. - Have --read-batch say "may try again" instead of "will try again".
-rw-r--r--receiver.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/receiver.c b/receiver.c
index 38eaa840..225bab68 100644
--- a/receiver.c
+++ b/receiver.c
@@ -352,10 +352,11 @@ static int get_next_gen_ndx(int fd, int next_gen_ndx, int desired_ndx)
{
while (next_gen_ndx < desired_ndx) {
if (next_gen_ndx >= 0) {
- rprintf(FINFO,
+ struct file_struct *file = cur_flist->files[next_gen_ndx];
+ rprintf(FERROR_XFER,
"(No batched update for%s \"%s\")\n",
- redoing ? " resend of" : "",
- f_name(cur_flist->files[next_gen_ndx], NULL));
+ file->flags & FLAG_FILE_SENT ? " resend of" : "",
+ f_name(file, NULL));
}
next_gen_ndx = read_int(fd);
if (next_gen_ndx == -1) {
@@ -720,8 +721,8 @@ int recv_files(int f_in, char *local_name)
send_msg_int(MSG_SUCCESS, ndx);
break;
case 0: {
- enum logcode msgtype = redoing || read_batch ? FERROR : FWARNING;
- if (msgtype == FERROR || verbose) {
+ enum logcode msgtype = redoing ? FERROR_XFER : FWARNING;
+ if (msgtype == FERROR_XFER || verbose) {
char *errstr, *redostr, *keptstr;
if (!(keep_partial && partialptr) && !inplace)
keptstr = "discarded";
@@ -729,16 +730,18 @@ int recv_files(int f_in, char *local_name)
keptstr = "put into partial-dir";
else
keptstr = "retained";
- if (msgtype == FERROR) {
+ if (msgtype == FERROR_XFER) {
errstr = "ERROR";
redostr = "";
} else {
errstr = "WARNING";
- redostr = " (will try again)";
+ redostr = read_batch ? " (may try again)"
+ : " (will try again)";
}
rprintf(msgtype,
"%s: %s failed verification -- update %s%s.\n",
- errstr, fname, keptstr, redostr);
+ errstr, local_name ? f_name(file, NULL) : fname,
+ keptstr, redostr);
}
if (!redoing) {
send_msg_int(MSG_REDO, ndx);