=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rsync/sender.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- src/usr.bin/rsync/sender.c 2019/05/08 21:30:11 1.23 +++ src/usr.bin/rsync/sender.c 2019/06/02 17:36:48 1.24 @@ -1,4 +1,4 @@ -/* $Id: sender.c,v 1.23 2019/05/08 21:30:11 benno Exp $ */ +/* $Id: sender.c,v 1.24 2019/06/02 17:36:48 florian Exp $ */ /* * Copyright (c) 2019 Kristaps Dzonsons * @@ -379,6 +379,7 @@ TAILQ_INIT(&sdlq); up.stat.fd = -1; up.stat.map = MAP_FAILED; + up.stat.blktab = blkhash_alloc(); /* * Generate the list of files we want to send from our @@ -622,9 +623,12 @@ if ((up.cur = TAILQ_FIRST(&sdlq)) == NULL) continue; - TAILQ_REMOVE(&sdlq, up.cur, entries); + /* Hash our blocks. */ + + blkhash_set(up.stat.blktab, up.cur->blks); + /* * End of phase: enable channel to receiver. * We'll need our output buffer enabled in order @@ -683,5 +687,6 @@ } flist_free(fl, flsz); free(wbuf); + blkhash_free(up.stat.blktab); return rc; }