From: Amos Jeffries Date: Wed, 24 Dec 2008 12:29:38 +0000 (+1300) Subject: Author: Christos Tsantilas X-Git-Tag: SQUID_3_2_0_1~1286 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cdad887fb8d3108d5549799f3322569dcc900fd2;p=thirdparty%2Fsquid.git Author: Christos Tsantilas Bug 2542: squid fails to resume dowload (and breaks content) when any ICAP filter is attached In the case the icap client is enabled, the ServerStateData::handleMoreAdaptedBodyAvailable called to handle the incoming data from the ICAP server. Inside this function a StoreIOBuffer created to pass the data to the related StoreEntry. The bug is that the offset passed to the StoreIOBuffer did not count the 206 response offsets. This patch uses the ServerStateData::currentOffset to compute the correct offset (which also used in the case the icap client is not enabled). --- diff --git a/src/Server.cc b/src/Server.cc index e07f05db54..9f64ee2ce8 100644 --- a/src/Server.cc +++ b/src/Server.cc @@ -683,7 +683,8 @@ ServerStateData::handleMoreAdaptedBodyAvailable() assert(entry); BodyPipeCheckout bpc(*adaptedBodySource); - const StoreIOBuffer ioBuf(&bpc.buf, bpc.offset); + const StoreIOBuffer ioBuf(&bpc.buf, currentOffset); + currentOffset += bpc.buf.size; entry->write(ioBuf); bpc.buf.consume(contentSize); bpc.checkIn();