Re: squid3-largeobj: more changes ....

From: Tsantilas Christos <chtsanti@dont-contact.us>
Date: Wed, 02 May 2007 22:04:37 +0300

Hi,
 Some changes for squid3-largeobj branch, mostly related with Range
Headers and ICAP client.
It is not fully tested, but I believe that it is near to provide full
large objects support (but not large objects caching)
The first tests are OK for me (ICAP still is not tested).

It is difficult to explain all changes so I will try to list the changes
of class member variables.

- First of all I changed the
   size_t Range<c>::size()
   to
    C Range<c>::size()
This is because it is used in range headers in which the size can be
bigger than the maximum value of size_t.
It also make sense the size of a range of 32bit integers to be 32bit
integer and the range of 64bit integers to be a 64bit integer

- BodyPipe::theBodySize,thePutSize,theGetSize must be 64bit
- Header Ranges changes:
      HttpHdrContRange::elength must be 64bit integer
      HttpHdrRangeSpec::offset,length must be 64bit
      HttpHdrRangeSpec::HttpRange must be of type Range<int64_t>
      HttpHdrRange::clen must be 64 bit
      HttpHdrRangeIter::debt_size must be 64bit
  - I am adding the function StringToInt64(const char *str, int64_t
&result, const char **p, int base);

The ICAP client related changes are:

- ChunkedCodingParser::theChunkSize,
ChunkedCodingParser::theLeftBodySize must be 64bit
- SizedEstimate::theData, must be 64 bit
- VirginBodyAct::theStart must be 64 bit
- ICAPModXact::virginConsumed must be 64 bit

Regards,
        Christos

Received on Wed May 02 2007 - 13:02:56 MDT

This archive was generated by hypermail pre-2.1.9 : Fri Jun 01 2007 - 12:00:08 MDT