aboutsummaryrefslogtreecommitdiffstats
path: root/token.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2005-01-02 09:08:59 +0000
committerWayne Davison <wayned@samba.org>2005-01-02 09:08:59 +0000
commit80a25bb88076453bbd2a2e00d697fd6b03ad4a7b (patch)
treed7c5026ce0af706e65b5745e97f87da12bbc32fb /token.c
parent0301b334c7a588a2f192b7eeb796156e8f5f8f0b (diff)
downloadandroid_external_rsync-80a25bb88076453bbd2a2e00d697fd6b03ad4a7b.tar.gz
android_external_rsync-80a25bb88076453bbd2a2e00d697fd6b03ad4a7b.tar.bz2
android_external_rsync-80a25bb88076453bbd2a2e00d697fd6b03ad4a7b.zip
Backed out changes to send_deflated_token() that surrounded the
call to deflate(..., Z_INSERT_ONLY) -- the underlying bug was caused by the zlib code not handling Z_INSERT_ONLY in the case where the server has disabled compression.
Diffstat (limited to 'token.c')
-rw-r--r--token.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/token.c b/token.c
index 201862e4..8ba32b99 100644
--- a/token.c
+++ b/token.c
@@ -262,22 +262,16 @@ send_deflated_token(int f, int token, struct map_struct *buf, OFF_T offset,
} else if (token != -2) {
/* add the data in the current block to the compressor's
history and hash table */
- do {
- n = MIN(toklen, CHUNK_SIZE);
- tx_strm.next_in = (Bytef *) map_ptr(buf, offset, n);
- tx_strm.avail_in = n;
- tx_strm.next_out = (Bytef *)obuf;
- tx_strm.avail_out = AVAIL_OUT_SIZE(CHUNK_SIZE);
- r = deflate(&tx_strm, Z_INSERT_ONLY);
- if (r != Z_OK || tx_strm.avail_in != 0) {
- rprintf(FERROR,
- "deflate on token returned %d (%d bytes left)\n",
- r, tx_strm.avail_in);
- exit_cleanup(RERR_STREAMIO);
- }
- toklen -= n;
- offset += n;
- } while (toklen);
+ tx_strm.next_in = (Bytef *) map_ptr(buf, offset, toklen);
+ tx_strm.avail_in = toklen;
+ tx_strm.next_out = (Bytef *) obuf;
+ tx_strm.avail_out = AVAIL_OUT_SIZE(CHUNK_SIZE);
+ r = deflate(&tx_strm, Z_INSERT_ONLY);
+ if (r != Z_OK || tx_strm.avail_in != 0) {
+ rprintf(FERROR, "deflate on token returned %d (%d bytes left)\n",
+ r, tx_strm.avail_in);
+ exit_cleanup(RERR_STREAMIO);
+ }
}
}