Squid ICAP client possibly bugs and corrections......

From: Christos Tsantilas <chtsanti@dont-contact.us>
Date: Mon, 28 Jun 2004 12:17:54 -0700

Hi squid developers,

I want to report 1-2 small bugs and corrections at squid
icap client interface that are relative with keeped alive
requests to an icap server.
I am using a (corrected) squid-icap named squid-2.5.STABLE5-icap-6-pre1.
but as I seen this bugs exists and in squid-icap-2.5-200405131634
icap enabled squid.

1)when icapReadReply3 called after a response request with null-body
(e.g when the content of a web page not changed ...)
 then enters the block "if (EBIT_TEST(i..., ENTRY_ABORTED)){".
Squid icap-client has request keeped alive connection and
now the connection not closed. This behaviour can cause
a lot of open connection to an icap server until connections expired.

An addition of comm_close(fd) in this block can solve the problem.

Moreover if think there is no need for the connection to be closed
in this phase and can keeped alive. So the entire block :
    if (EBIT_TEST(i..., ENTRY_ABORTED)){
         ...........
    }
in function icapReadReply3 can removed.

2) In file icap_reqmod.c in function icapSendReqMod
 when compute the position of entities for
 "Encapsulated:" header squid does not include crlf (2 bytes) in
possition computation.
  This fields are the possition in the header not the size of the header.

  I propose to
  a) add a "crlf" at the end of "icap->request->header"
     before Encapsulated header computation
    eg "memBufAppend(&mb_hdr, crlf, 2);" at line 613
 and
  b) remove the "memBufAppend(&mb, crlf, 2);" line 637 that adds the
crlf at the end of
     entire buffer.

Regards,
     Christos
Received on Mon Jun 28 2004 - 14:06:18 MDT

This archive was generated by hypermail pre-2.1.9 : Wed Jun 30 2004 - 12:00:03 MDT