aboutsummaryrefslogtreecommitdiffstats
path: root/receiver.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2009-01-18 22:57:43 -0800
committerWayne Davison <wayned@samba.org>2009-01-18 23:02:36 -0800
commit7a498f5b6c49690344a288059434e8886937a80f (patch)
tree4d96a245dde52974ed6a06cf91950f0185b0ffa0 /receiver.c
parent243e9a366db34f488325e94af1939eeac19f56da (diff)
downloadandroid_external_rsync-7a498f5b6c49690344a288059434e8886937a80f.tar.gz
android_external_rsync-7a498f5b6c49690344a288059434e8886937a80f.tar.bz2
android_external_rsync-7a498f5b6c49690344a288059434e8886937a80f.zip
Check the right flist_num in gen_wants_ndx().
Diffstat (limited to 'receiver.c')
-rw-r--r--receiver.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/receiver.c b/receiver.c
index 74c2e752..4325e30f 100644
--- a/receiver.c
+++ b/receiver.c
@@ -384,12 +384,11 @@ static int we_want_redo(int desired_ndx)
return 0;
}
-static int gen_wants_ndx(int desired_ndx)
+static int gen_wants_ndx(int desired_ndx, int flist_num)
{
static int next_ndx = -1;
static int done_cnt = 0;
static BOOL got_eof = False;
- int flist_num = first_flist->flist_num;
if (got_eof)
return 0;
@@ -461,13 +460,17 @@ int recv_files(int f_in, char *local_name)
end_progress(0);
}
if (inc_recurse && first_flist) {
- if (read_batch)
- gen_wants_ndx(first_flist->used + first_flist->ndx_start);
+ if (read_batch) {
+ ndx = first_flist->used + first_flist->ndx_start;
+ gen_wants_ndx(ndx, first_flist->flist_num);
+ }
flist_free(first_flist);
if (first_flist)
continue;
- } else if (read_batch && first_flist)
- gen_wants_ndx(first_flist->used);
+ } else if (read_batch && first_flist) {
+ ndx = first_flist->used;
+ gen_wants_ndx(ndx, first_flist->flist_num);
+ }
if (++phase > max_phase)
break;
if (DEBUG_GTE(RECV, 1))
@@ -573,7 +576,10 @@ int recv_files(int f_in, char *local_name)
}
if (read_batch) {
- if (!(redoing ? we_want_redo(ndx) : gen_wants_ndx(ndx))) {
+ int wanted = redoing
+ ? we_want_redo(ndx)
+ : gen_wants_ndx(ndx, cur_flist->flist_num);
+ if (!wanted) {
rprintf(FINFO,
"(Skipping batched update for%s \"%s\")\n",
redoing ? " resend of" : "",