Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed a crash if a non-incremental-recursion transfer has a
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
38eaa84
..
ce6b739
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-3,7
+3,7
@@
*
* Copyright (C) 1996-2000 Andrew Tridgell
* Copyright (C) 1996 Paul Mackerras
*
* Copyright (C) 1996-2000 Andrew Tridgell
* Copyright (C) 1996 Paul Mackerras
- * Copyright (C) 2003-200
7
Wayne Davison
+ * Copyright (C) 2003-200
8
Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-55,7
+55,7
@@
extern char *tmpdir;
extern char *partial_dir;
extern char *basis_dir[];
extern struct file_list *cur_flist, *first_flist, *dir_flist;
extern char *partial_dir;
extern char *basis_dir[];
extern struct file_list *cur_flist, *first_flist, *dir_flist;
-extern struct filter_list_struct
server
_filter_list;
+extern struct filter_list_struct
daemon
_filter_list;
static struct bitbag *delayed_bits = NULL;
static int phase = 0, redoing = 0;
static struct bitbag *delayed_bits = NULL;
static int phase = 0, redoing = 0;
@@
-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) {
{
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",
"(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) {
}
next_gen_ndx = read_int(fd);
if (next_gen_ndx == -1) {
@@
-488,8
+489,8
@@
int recv_files(int f_in, char *local_name)
cleanup_got_literal = 0;
cleanup_got_literal = 0;
- if (
server
_filter_list.head
- && check_filter(&
server_filter_list
, fname, 0) < 0) {
+ if (
daemon
_filter_list.head
+ && check_filter(&
daemon_filter_list, FLOG
, fname, 0) < 0) {
rprintf(FERROR, "attempt to hack rsync failed.\n");
exit_cleanup(RERR_PROTOCOL);
}
rprintf(FERROR, "attempt to hack rsync failed.\n");
exit_cleanup(RERR_PROTOCOL);
}
@@
-501,7
+502,7
@@
int recv_files(int f_in, char *local_name)
continue;
}
if (write_batch < 0) {
continue;
}
if (write_batch < 0) {
- log_item(F
INFO
, file, &stats, iflags, NULL);
+ log_item(F
CLIENT
, file, &stats, iflags, NULL);
if (!am_server)
discard_receive_data(f_in, F_LENGTH(file));
continue;
if (!am_server)
discard_receive_data(f_in, F_LENGTH(file));
continue;
@@
-554,8
+555,8
@@
int recv_files(int f_in, char *local_name)
fnamecmp = fnamecmpbuf;
break;
}
fnamecmp = fnamecmpbuf;
break;
}
- if (!fnamecmp || (
server
_filter_list.head
- && check_filter(&
server_filter_list
, fname, 0) < 0)) {
+ if (!fnamecmp || (
daemon
_filter_list.head
+ && check_filter(&
daemon_filter_list, FLOG
, fname, 0) < 0)) {
fnamecmp = fname;
fnamecmp_type = FNAMECMP_FNAME;
}
fnamecmp = fname;
fnamecmp_type = FNAMECMP_FNAME;
}
@@
-720,8
+721,8
@@
int recv_files(int f_in, char *local_name)
send_msg_int(MSG_SUCCESS, ndx);
break;
case 0: {
send_msg_int(MSG_SUCCESS, ndx);
break;
case 0: {
- enum logcode msgtype = redoing
|| read_batch ? FERRO
R : FWARNING;
- if (msgtype == FERROR || verbose) {
+ enum logcode msgtype = redoing
? FERROR_XFE
R : FWARNING;
+ if (msgtype == FERROR
_XFER
|| verbose) {
char *errstr, *redostr, *keptstr;
if (!(keep_partial && partialptr) && !inplace)
keptstr = "discarded";
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";
keptstr = "put into partial-dir";
else
keptstr = "retained";
- if (msgtype == FERROR) {
+ if (msgtype == FERROR
_XFER
) {
errstr = "ERROR";
redostr = "";
} else {
errstr = "WARNING";
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",
}
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);
}
if (!redoing) {
send_msg_int(MSG_REDO, ndx);