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
Make sure that the am_server variable is non-zero after parsing the
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
26ed324
..
3615e03
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-3,12
+3,11
@@
*
* 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
, 2004, 2005, 2006
Wayne Davison
+ * Copyright (C) 2003
-2007
Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
*
* 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-26,7
+25,7
@@
extern int verbose;
extern int do_xfers;
extern int am_server;
extern int do_progress;
extern int do_xfers;
extern int am_server;
extern int do_progress;
-extern int inc
remental
;
+extern int inc
_recurse
;
extern int log_before_transfer;
extern int stdout_format_has_i;
extern int logfile_format_has_i;
extern int log_before_transfer;
extern int stdout_format_has_i;
extern int logfile_format_has_i;
@@
-49,7
+48,6
@@
extern int checksum_seed;
extern int inplace;
extern int delay_updates;
extern struct stats stats;
extern int inplace;
extern int delay_updates;
extern struct stats stats;
-extern char *stdout_format;
extern char *tmpdir;
extern char *partial_dir;
extern char *basis_dir[];
extern char *tmpdir;
extern char *partial_dir;
extern char *basis_dir[];
@@
-57,7
+55,7
@@
extern struct file_list *cur_flist, *first_flist;
extern struct filter_list_struct server_filter_list;
static struct bitbag *delayed_bits = NULL;
extern struct filter_list_struct server_filter_list;
static struct bitbag *delayed_bits = NULL;
-static int phase = 0;
+static int phase = 0
, redoing = 0
;
/* We're either updating the basis file or an identical copy: */
static int updating_basis;
/* We're either updating the basis file or an identical copy: */
static int updating_basis;
@@
-314,12
+312,12
@@
static int get_next_gen_ndx(int fd, int next_gen_ndx, int desired_ndx)
if (next_gen_ndx >= 0) {
rprintf(FINFO,
"(No batched update for%s \"%s\")\n",
if (next_gen_ndx >= 0) {
rprintf(FINFO,
"(No batched update for%s \"%s\")\n",
-
phase
? " resend of" : "",
+
redoing
? " resend of" : "",
f_name(cur_flist->files[next_gen_ndx], NULL));
}
next_gen_ndx = read_int(fd);
if (next_gen_ndx == -1) {
f_name(cur_flist->files[next_gen_ndx], NULL));
}
next_gen_ndx = read_int(fd);
if (next_gen_ndx == -1) {
- if (inc
remental
)
+ if (inc
_recurse
)
next_gen_ndx = first_flist->prev->count + first_flist->prev->ndx_start;
else
next_gen_ndx = cur_flist->count;
next_gen_ndx = first_flist->prev->count + first_flist->prev->ndx_start;
else
next_gen_ndx = cur_flist->count;
@@
-366,13
+364,13
@@
int recv_files(int f_in, char *local_name)
ndx = read_ndx_and_attrs(f_in, -1, &iflags,
&fnamecmp_type, xname, &xlen);
if (ndx == NDX_DONE) {
ndx = read_ndx_and_attrs(f_in, -1, &iflags,
&fnamecmp_type, xname, &xlen);
if (ndx == NDX_DONE) {
- if (inc
remental
&& first_flist) {
+ if (inc
_recurse
&& first_flist) {
flist_free(first_flist);
if (first_flist)
continue;
}
if (read_batch && cur_flist) {
flist_free(first_flist);
if (first_flist)
continue;
}
if (read_batch && cur_flist) {
- int high = inc
remental
+ int high = inc
_recurse
? first_flist->prev->count + first_flist->prev->ndx_start
: cur_flist->count;
get_next_gen_ndx(batch_gen_fd, next_gen_ndx, high);
? first_flist->prev->count + first_flist->prev->ndx_start
: cur_flist->count;
get_next_gen_ndx(batch_gen_fd, next_gen_ndx, high);
@@
-412,6
+410,7
@@
int recv_files(int f_in, char *local_name)
append_mode = -append_mode;
sparse_files = -sparse_files;
csum_length = SUM_LENGTH;
append_mode = -append_mode;
sparse_files = -sparse_files;
csum_length = SUM_LENGTH;
+ redoing = 1;
}
} else {
if (csum_length != SHORT_SUM_LENGTH) {
}
} else {
if (csum_length != SHORT_SUM_LENGTH) {
@@
-420,6
+419,7
@@
int recv_files(int f_in, char *local_name)
append_mode = -append_mode;
sparse_files = -sparse_files;
csum_length = SHORT_SUM_LENGTH;
append_mode = -append_mode;
sparse_files = -sparse_files;
csum_length = SHORT_SUM_LENGTH;
+ redoing = 0;
}
}
}
}
@@
-663,11
+663,11
@@
int recv_files(int f_in, char *local_name)
cleanup_disable();
if (recv_ok > 0) {
cleanup_disable();
if (recv_ok > 0) {
- if (remove_source_files || inc
remental
+ if (remove_source_files || inc
_recurse
|| (preserve_hard_links && F_IS_HLINKED(file)))
send_msg_int(MSG_SUCCESS, ndx);
} else if (!recv_ok) {
|| (preserve_hard_links && F_IS_HLINKED(file)))
send_msg_int(MSG_SUCCESS, ndx);
} else if (!recv_ok) {
- enum logcode msgtype =
phase
|| read_batch ? FERROR : FINFO;
+ enum logcode msgtype =
redoing
|| read_batch ? FERROR : FINFO;
if (msgtype == FERROR || verbose) {
char *errstr, *redostr, *keptstr;
if (!(keep_partial && partialptr) && !inplace)
if (msgtype == FERROR || verbose) {
char *errstr, *redostr, *keptstr;
if (!(keep_partial && partialptr) && !inplace)
@@
-687,10
+687,11
@@
int recv_files(int f_in, char *local_name)
"%s: %s failed verification -- update %s%s.\n",
errstr, fname, keptstr, redostr);
}
"%s: %s failed verification -- update %s%s.\n",
errstr, fname, keptstr, redostr);
}
- if (!
phase || incremental
) {
+ if (!
redoing
) {
send_msg_int(MSG_REDO, ndx);
file->flags |= FLAG_FILE_SENT;
send_msg_int(MSG_REDO, ndx);
file->flags |= FLAG_FILE_SENT;
- }
+ } else if (inc_recurse)
+ send_msg_int(MSG_NO_SEND, ndx);
}
}
if (make_backups < 0)
}
}
if (make_backups < 0)