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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to