aboutsummaryrefslogtreecommitdiffstats
path: root/receiver.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2005-03-29 19:49:40 +0000
committerWayne Davison <wayned@samba.org>2005-03-29 19:49:40 +0000
commit154cdaaa4017cc3b878a3ef4960167ccf8d9fd61 (patch)
tree4626438d6a3c26530114cc190f55ad57dc71b4bf /receiver.c
parent33c4b445ef295f7abe023b208651d450ab2a5c3b (diff)
downloadandroid_external_rsync-154cdaaa4017cc3b878a3ef4960167ccf8d9fd61.tar.gz
android_external_rsync-154cdaaa4017cc3b878a3ef4960167ccf8d9fd61.tar.bz2
android_external_rsync-154cdaaa4017cc3b878a3ef4960167ccf8d9fd61.zip
- Warn about missing batched updates the generator wants but the
batch doesn't have. - Tweaked the "skipping ..." message that is output for already- applied batched updates.
Diffstat (limited to 'receiver.c')
-rw-r--r--receiver.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/receiver.c b/receiver.c
index 9622b0d7..f674367e 100644
--- a/receiver.c
+++ b/receiver.c
@@ -53,7 +53,7 @@ extern char *log_format;
extern char *tmpdir;
extern char *partial_dir;
extern char *basis_dir[];
-
+extern struct file_list *the_file_list;
extern struct filter_list_struct server_filter_list;
#define SLOT_SIZE (16*1024) /* Desired size in bytes */
@@ -343,6 +343,21 @@ static void handle_delayed_updates(struct file_list *flist, char *local_name)
}
}
+static int get_next_gen_i(int batch_gen_fd, int next_gen_i, int desired_i)
+{
+ while (next_gen_i < desired_i) {
+ if (next_gen_i >= 0) {
+ rprintf(FINFO,
+ "(No batched update for \"%s\")\n",
+ safe_fname(f_name(the_file_list->files[next_gen_i])));
+ }
+ next_gen_i = read_int(batch_gen_fd);
+ if (next_gen_i == -1)
+ next_gen_i = the_file_list->count;
+ }
+ return next_gen_i;
+}
+
/**
* main routine for receiver process.
@@ -385,8 +400,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
i = read_int(f_in);
if (i == -1) {
if (read_batch) {
- if (next_gen_i != flist->count)
- while (read_int(batch_gen_fd) != -1) {}
+ get_next_gen_i(batch_gen_fd, next_gen_i,
+ flist->count);
next_gen_i = -1;
}
if (++phase > max_phase)
@@ -444,13 +459,9 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
}
if (read_batch) {
- while (i > next_gen_i) {
- next_gen_i = read_int(batch_gen_fd);
- if (next_gen_i == -1)
- next_gen_i = flist->count;
- }
+ next_gen_i = get_next_gen_i(batch_gen_fd, next_gen_i, i);
if (i < next_gen_i) {
- rprintf(FINFO, "skipping update for \"%s\"\n",
+ rprintf(FINFO, "(Skipping batched update for \"%s\")\n",
safe_fname(fname));
discard_receive_data(f_in, file->length);
continue;