Hi all,
I ran into a problem wih the squid 2.6StableX and the Icap patch I haven't
seen with > 2.5Stable9.
Actually Webwasher will send the blocking notification in reqmod (for
instance using the URL filter) as a HTTP REPLY.
In 2.6 this Reply never reached the calling client. Instead an empty page
was shown.
While running through the source I noticed that clientWriteComplete closed
down the FD because the reported size was 0.
This is because Webwasher never reports the used HTTP Version. In 2.5 this
didn't matter because >1 was assumed and mb = httpReplyPack(rep); was used
in clientSendMoreData (client_side.c).
In 2.6 due to the modifications this happens in clientCheckHeaderDone
(client_side.c) but looks like this
if (http->http_ver.major >= 1)
mb = httpReplyPack(rep);
else
memBufDefInit(&mb);
As said before, Webwasher does not supply the HTTP Header within the icap
reqmod reply so httpReplyPack is not used and an empty page will be send
back.
My solution currently modifies icapReqModHandoffRespMod (icap_reqmod.c) as
follows.
if (NULL == http)
return;
assert(icap->request);
+ http->http_ver.major = 1;
http->entry = clientCreateStoreEntry(http,
icap->request->method, icap->request->flags);
icap->respmod.entry = http->entry;
For my uses this works fine but mabye someone else comes up with a better
solution.
Regards,
Axel
This archive was generated by hypermail pre-2.1.9 : Wed Nov 29 2006 - 12:00:05 MST