diff options
author | Wayne Davison <wayned@samba.org> | 2009-01-18 22:57:43 -0800 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2009-01-18 23:02:36 -0800 |
commit | 7a498f5b6c49690344a288059434e8886937a80f (patch) | |
tree | 4d96a245dde52974ed6a06cf91950f0185b0ffa0 /receiver.c | |
parent | 243e9a366db34f488325e94af1939eeac19f56da (diff) | |
download | android_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.c | 20 |
1 files changed, 13 insertions, 7 deletions
@@ -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" : "", |