Index: include/Range.h =================================================================== RCS file: /cvsroot/squid/squid3/include/Range.h,v retrieving revision 1.7 diff -u -r1.7 Range.h --- include/Range.h 23 Apr 2006 11:27:37 -0000 1.7 +++ include/Range.h 6 May 2007 06:58:43 -0000 @@ -50,7 +50,7 @@ C start; C end; Range intersection (Range const &) const; - size_t size() const; + C size() const; }; template @@ -75,7 +75,7 @@ } template -size_t +C Range::size() const { return end > start ? end - start : 0; Index: src/BodyPipe.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/BodyPipe.cc,v retrieving revision 1.2 diff -u -r1.2 BodyPipe.cc --- src/BodyPipe.cc 6 Apr 2007 04:50:40 -0000 1.2 +++ src/BodyPipe.cc 6 May 2007 06:58:53 -0000 @@ -43,7 +43,7 @@ theBuf.clean(); } -void BodyPipe::setBodySize(size_t aBodySize) +void BodyPipe::setBodySize(uint64_t aBodySize) { assert(!bodySizeKnown()); assert(aBodySize >= 0); @@ -58,13 +58,13 @@ debugs(91,7, HERE << "set body size" << status()); } -size_t BodyPipe::bodySize() const +uint64_t BodyPipe::bodySize() const { assert(bodySizeKnown()); - return static_cast(theBodySize); + return static_cast(theBodySize); } -bool BodyPipe::expectMoreAfter(size_t offset) const +bool BodyPipe::expectMoreAfter(uint64_t offset) const { assert(theGetSize <= offset); return offset < thePutSize || // buffer has more now or @@ -290,9 +290,9 @@ buf.append(" [", 2); - buf.Printf("%d<=%d", (int)theGetSize, (int)thePutSize); + buf.Printf("%"PRId64"<=%"PRId64, (int64_t)theGetSize, (int64_t)thePutSize); if (theBodySize >= 0) - buf.Printf("<=%d", (int)theBodySize); + buf.Printf("<=%"PRId64, theBodySize); else buf.append("<=?", 3); Index: src/BodyPipe.h =================================================================== RCS file: /cvsroot/squid/squid3/src/BodyPipe.h,v retrieving revision 1.2 diff -u -r1.2 BodyPipe.h --- src/BodyPipe.h 6 Apr 2007 04:50:40 -0000 1.2 +++ src/BodyPipe.h 6 May 2007 06:58:53 -0000 @@ -52,7 +52,7 @@ public: BodyPipe &pipe; MemBuf &buf; - const size_t offset; // of current content, relative to the body start + const uint64_t offset; // of current content, relative to the body start protected: const size_t checkedOutSize; @@ -81,10 +81,10 @@ BodyPipe(Producer *aProducer); ~BodyPipe(); // asserts that producer and consumer are cleared - void setBodySize(size_t aSize); // set body size + void setBodySize(uint64_t aSize); // set body size bool bodySizeKnown() const { return theBodySize >= 0; } - size_t bodySize() const; - size_t consumedSize() const { return theGetSize; } + uint64_t bodySize() const; + uint64_t consumedSize() const { return theGetSize; } bool productionEnded() const { return !theProducer; } // called by producers @@ -99,7 +99,7 @@ void clearConsumer(); // aborts if still piping size_t getMoreData(MemBuf &buf); void consume(size_t size); - bool expectMoreAfter(size_t offset) const; + bool expectMoreAfter(uint64_t offset) const; bool exhausted() const; // saw eof/abort and all data consumed // start or continue consuming when there is no consumer @@ -140,12 +140,12 @@ AsyncCallWrapper(91,5, BodyPipe, tellBodyProducerAborted); private: - ssize_t theBodySize; // expected total content length, if known + int64_t theBodySize; // expected total content length, if known Producer *theProducer; // content producer, if any Consumer *theConsumer; // content consumer, if any - size_t thePutSize; // ever-increasing total - size_t theGetSize; // ever-increasing total + uint64_t thePutSize; // ever-increasing total + uint64_t theGetSize; // ever-increasing total MemBuf theBuf; // produced but not yet consumed content, if any Index: src/HttpHdrContRange.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpHdrContRange.cc,v retrieving revision 1.3.26.2 diff -u -r1.3.26.2 HttpHdrContRange.cc --- src/HttpHdrContRange.cc 1 May 2007 21:03:42 -0000 1.3.26.2 +++ src/HttpHdrContRange.cc 6 May 2007 06:58:53 -0000 @@ -81,16 +81,16 @@ } /* parse offset */ - if (!httpHeaderParseSize(field, &spec->offset)) + if (!httpHeaderParseOffset(field, &spec->offset)) return 0; p++; /* do we have last-pos ? */ if (p - field < flen) { - ssize_t last_pos; + int64_t last_pos; - if (!httpHeaderParseSize(p, &last_pos)) + if (!httpHeaderParseOffset(p, &last_pos)) return 0; spec->length = size_diff(last_pos + 1, spec->offset); @@ -100,7 +100,7 @@ assert (spec->length >= 0); /* we managed to parse, check if the result makes sence */ - if (known_spec((size_t)spec->length) && spec->length == 0) { + if (known_spec(spec->length) && spec->length == 0) { debugs(68, 2, "invalid range (" << spec->offset << " += " << (long int) spec->length << ") in resp-range-spec near: '" << field << "'"); return 0; @@ -116,11 +116,11 @@ assert (spec->length >= 0); assert (spec->length >= 0); - if (!known_spec((size_t)spec->offset) || !known_spec((size_t)spec->length)) + if (!known_spec(spec->offset) || !known_spec(spec->length)) packerPrintf(p, "*"); else - packerPrintf(p, "bytes %ld-%ld", - (long int) spec->offset, (long int) spec->offset + spec->length - 1); + packerPrintf(p, "bytes %"PRId64"-%"PRId64, + spec->offset, spec->offset + spec->length - 1); } /* @@ -176,7 +176,7 @@ if (*p == '*') range->elength = range_spec_unknown; - else if (!httpHeaderParseSize(p, &range->elength)) + else if (!httpHeaderParseOffset(p, &range->elength)) return 0; debugs(68, 8, "parsed content-range field: " << @@ -212,14 +212,14 @@ /* Ensure typecast is safe */ assert (range->elength >= 0); - if (!known_spec((size_t)range->elength)) + if (!known_spec(range->elength)) packerPrintf(p, "/*"); else - packerPrintf(p, "/%ld", (long int) range->elength); + packerPrintf(p, "/%"PRId64, range->elength); } void -httpHdrContRangeSet(HttpHdrContRange * cr, HttpHdrRangeSpec spec, ssize_t ent_len) +httpHdrContRangeSet(HttpHdrContRange * cr, HttpHdrRangeSpec spec, int64_t ent_len) { assert(cr && ent_len >= 0); cr->spec = spec; Index: src/HttpHdrContRange.h =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpHdrContRange.h,v retrieving revision 1.4 diff -u -r1.4 HttpHdrContRange.h --- src/HttpHdrContRange.h 23 Apr 2006 11:27:37 -0000 1.4 +++ src/HttpHdrContRange.h 6 May 2007 06:58:53 -0000 @@ -43,7 +43,7 @@ public: HttpHdrRangeSpec spec; - ssize_t elength; /* entity length, not content length */ + int64_t elength; /* entity length, not content length */ }; /* Http Content Range Header Field */ @@ -55,9 +55,9 @@ SQUIDCEXTERN HttpHdrContRange *httpHdrContRangeDup(const HttpHdrContRange * crange); SQUIDCEXTERN void httpHdrContRangePackInto(const HttpHdrContRange * crange, Packer * p); /* inits with given spec */ -SQUIDCEXTERN void httpHdrContRangeSet(HttpHdrContRange *, HttpHdrRangeSpec, ssize_t); +SQUIDCEXTERN void httpHdrContRangeSet(HttpHdrContRange *, HttpHdrRangeSpec, int64_t); ; -SQUIDCEXTERN void httpHeaderAddContRange(HttpHeader *, HttpHdrRangeSpec, ssize_t); +SQUIDCEXTERN void httpHeaderAddContRange(HttpHeader *, HttpHdrRangeSpec, int64_t); #endif /* SQUID_HTTPHDRCONTRANGE_H */ Index: src/HttpHdrRange.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpHdrRange.cc,v retrieving revision 1.13.10.2 diff -u -r1.13.10.2 HttpHdrRange.cc --- src/HttpHdrRange.cc 1 May 2007 21:03:42 -0000 1.13.10.2 +++ src/HttpHdrRange.cc 6 May 2007 06:59:04 -0000 @@ -63,7 +63,7 @@ /* globals */ size_t HttpHdrRange::ParsedCount = 0; -ssize_t const HttpHdrRangeSpec::UnknownPosition = -1; +int64_t const HttpHdrRangeSpec::UnknownPosition = -1; /* * Range-Spec @@ -93,7 +93,7 @@ /* is it a suffix-byte-range-spec ? */ if (*field == '-') { - if (!httpHeaderParseSize(field + 1, &length)) + if (!httpHeaderParseOffset(field + 1, &length)) return false; } else /* must have a '-' somewhere in _this_ field */ @@ -101,16 +101,16 @@ debugs(64, 2, "ignoring invalid (missing '-') range-spec near: '" << field << "'"); return false; } else { - if (!httpHeaderParseSize(field, &offset)) + if (!httpHeaderParseOffset(field, &offset)) return false; p++; /* do we have last-pos ? */ if (p - field < flen) { - ssize_t last_pos; + int64_t last_pos; - if (!httpHeaderParseSize(p, &last_pos)) + if (!httpHeaderParseOffset(p, &last_pos)) return false; HttpHdrRangeSpec::HttpRange aSpec (offset, last_pos + 1); @@ -132,20 +132,20 @@ HttpHdrRangeSpec::packInto(Packer * packer) const { if (!known_spec(offset)) /* suffix */ - packerPrintf(packer, "-%ld", (long int) length); + packerPrintf(packer, "-%"PRId64, length); else if (!known_spec(length)) /* trailer */ - packerPrintf(packer, "%ld-", (long int) offset); + packerPrintf(packer, "%"PRId64"-", offset); else /* range */ - packerPrintf(packer, "%ld-%ld", - (long int) offset, (long int) offset + length - 1); + packerPrintf(packer, "%"PRId64"-%"PRId64, + offset, offset + length - 1); } void HttpHdrRangeSpec::outputInfo( char const *note) const { debugs(64, 5, "HttpHdrRangeSpec::canonize: " << note << ": [" << - (long int) offset << ", " << (long int) offset + length << - ") len: " << (long int) length); + offset << ", " << offset + length << + ") len: " << length); } /* fills "absent" positions in range specification based on response body size @@ -153,7 +153,7 @@ * range is valid if its intersection with [0,length-1] is not empty */ int -HttpHdrRangeSpec::canonize(size_t clen) +HttpHdrRangeSpec::canonize(int64_t clen) { outputInfo ("have"); HttpRange object(0, clen); @@ -190,8 +190,8 @@ bool merged (false); #if MERGING_BREAKS_NOTHING /* Note: this code works, but some clients may not like its effects */ - size_t rhs = offset + length; /* no -1 ! */ - const size_t donor_rhs = donor->offset + donor->length; /* no -1 ! */ + uint64_t rhs = offset + length; /* no -1 ! */ + const uint64_t donor_rhs = donor->offset + donor->length; /* no -1 ! */ assert(known_spec(offset)); assert(known_spec(donor->offset)); assert(length > 0); @@ -402,7 +402,7 @@ } int -HttpHdrRange::canonize (size_t newClen) +HttpHdrRange::canonize (int64_t newClen) { clen = newClen; debugs(64, 3, "HttpHdrRange::canonize: started with " << specs.count << @@ -420,7 +420,7 @@ bool HttpHdrRange::isComplex() const { - size_t offset = 0; + uint64_t offset = 0; assert(this); /* check that all rangers are in "strong" order */ const_iterator pos (begin()); @@ -429,7 +429,7 @@ /* Ensure typecasts is safe */ assert ((*pos)->offset >= 0); - if ((unsigned int)(*pos)->offset < offset) + if ((uint64_t)(*pos)->offset < offset) return 1; offset = (*pos)->offset + (*pos)->length; @@ -450,7 +450,7 @@ assert(this); /* check that all rangers are in "strong" order, */ /* as far as we can tell without the content length */ - size_t offset = 0; + uint64_t offset = 0; for (const_iterator pos (begin()); pos != end(); ++pos) { if (!known_spec((*pos)->offset)) /* ignore unknowns */ @@ -459,7 +459,7 @@ /* Ensure typecasts is safe */ assert ((*pos)->offset >= 0); - if ((size_t) (*pos)->offset < offset) + if ((uint64_t) (*pos)->offset < offset) return true; offset = (*pos)->offset; @@ -476,10 +476,10 @@ * or HttpHdrRangeSpec::UnknownPosition * this is used for size limiting */ -ssize_t +int64_t HttpHdrRange::firstOffset() const { - ssize_t offset = HttpHdrRangeSpec::UnknownPosition; + int64_t offset = HttpHdrRangeSpec::UnknownPosition; assert(this); const_iterator pos = begin(); @@ -499,15 +499,15 @@ * ranges are combined into one, for example FTP REST. * Use 0 for size if unknown */ -ssize_t -HttpHdrRange::lowestOffset(ssize_t size) const +int64_t +HttpHdrRange::lowestOffset(int64_t size) const { - ssize_t offset = HttpHdrRangeSpec::UnknownPosition; + int64_t offset = HttpHdrRangeSpec::UnknownPosition; const_iterator pos = begin(); assert(this); while (pos != end()) { - ssize_t current = (*pos)->offset; + int64_t current = (*pos)->offset; if (!known_spec(current)) { if ((*pos)->length > size || !known_spec((*pos)->length)) @@ -546,7 +546,7 @@ /* tail request */ return true; - if ((ssize_t)Config.rangeOffsetLimit >= firstOffset()) + if ((int64_t)Config.rangeOffsetLimit >= firstOffset()) /* below the limit */ return false; @@ -590,14 +590,14 @@ } } -ssize_t +int64_t HttpHdrRangeIter::debt() const { debugs(64, 3, "HttpHdrRangeIter::debt: debt is " << debt_size); return debt_size; } -void HttpHdrRangeIter::debt(ssize_t newDebt) +void HttpHdrRangeIter::debt(int64_t newDebt) { debugs(64, 3, "HttpHdrRangeIter::debt: was " << debt_size << " now " << newDebt); debt_size = newDebt; Index: src/HttpHeaderRange.h =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpHeaderRange.h,v retrieving revision 1.9 diff -u -r1.9 HttpHeaderRange.h --- src/HttpHeaderRange.h 6 Jun 2006 19:50:39 -0000 1.9 +++ src/HttpHeaderRange.h 6 May 2007 06:59:04 -0000 @@ -48,19 +48,19 @@ public: MEMPROXY_CLASS(HttpHdrRangeSpec); - typedef Range HttpRange; - static ssize_t const UnknownPosition; + typedef Range HttpRange; + static int64_t const UnknownPosition; HttpHdrRangeSpec(); static HttpHdrRangeSpec *Create(const char *field, int fieldLen); bool parseInit(const char *field, int flen); - int canonize(size_t clen); + int canonize(int64_t clen); void outputInfo( char const *note) const; void packInto(Packer * p) const; bool mergeWith(const HttpHdrRangeSpec * donor); - ssize_t offset; - ssize_t length; + int64_t offset; + int64_t length; }; MEMPROXY_CLASS_INLINE(HttpHdrRangeSpec) @@ -93,7 +93,7 @@ const_iterator end() const; /* adjust specs after the length is known */ - int canonize(size_t); + int canonize(int64_t); int canonize(HttpReply *rep); /* returns true if ranges are valid; inits HttpHdrRange */ bool parseInit(const String * range_spec); @@ -101,8 +101,8 @@ /* other */ bool isComplex() const; bool willBeComplex() const; - ssize_t firstOffset() const; - ssize_t lowestOffset(ssize_t) const; + int64_t firstOffset() const; + int64_t lowestOffset(int64_t) const; bool offsetLimitExceeded() const; bool contains(HttpHdrRangeSpec& r) const; Vector specs; @@ -110,7 +110,7 @@ private: void getCanonizedSpecs (Vector ©); void merge (Vector &basis); - ssize_t clen; + int64_t clen; }; MEMPROXY_CLASS_INLINE(HttpHdrRange) @@ -124,9 +124,9 @@ HttpHdrRange::iterator pos; const HttpHdrRangeSpec *currentSpec() const; void updateSpec(); - ssize_t debt() const; - void debt(ssize_t); - ssize_t debt_size; /* bytes left to send from the current spec */ + int64_t debt() const; + void debt(int64_t); + int64_t debt_size; /* bytes left to send from the current spec */ String boundary; /* boundary for multipart responses */ bool valid; }; Index: src/HttpHeaderTools.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpHeaderTools.cc,v retrieving revision 1.21.6.4 diff -u -r1.21.6.4 HttpHeaderTools.cc --- src/HttpHeaderTools.cc 30 Apr 2007 17:08:09 -0000 1.21.6.4 +++ src/HttpHeaderTools.cc 6 May 2007 06:59:04 -0000 @@ -143,7 +143,7 @@ /* wrapper arrounf PutContRange */ void -httpHeaderAddContRange(HttpHeader * hdr, HttpHdrRangeSpec spec, ssize_t ent_len) +httpHeaderAddContRange(HttpHeader * hdr, HttpHdrRangeSpec spec, int64_t ent_len) { HttpHdrContRange *cr = httpHdrContRangeCreate(); assert(hdr && ent_len >= 0); Index: src/HttpMsg.h =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpMsg.h,v retrieving revision 1.14.6.2 diff -u -r1.14.6.2 HttpMsg.h --- src/HttpMsg.h 19 Apr 2007 04:43:38 -0000 1.14.6.2 +++ src/HttpMsg.h 6 May 2007 06:59:04 -0000 @@ -86,7 +86,7 @@ virtual int httpMsgParseError(); - virtual bool expectingBody(method_t, ssize_t&) const = 0; + virtual bool expectingBody(method_t, int64_t&) const = 0; void firstLineBuf(MemBuf&); Index: src/HttpReply.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpReply.cc,v retrieving revision 1.38.6.4 diff -u -r1.38.6.4 HttpReply.cc --- src/HttpReply.cc 20 Apr 2007 22:53:46 -0000 1.38.6.4 +++ src/HttpReply.cc 6 May 2007 06:59:23 -0000 @@ -414,7 +414,7 @@ /* * Returns the body size of a HTTP response */ -int +int64_t HttpReply::bodySize(method_t method) const { if (sline.version.major < 1) @@ -469,7 +469,7 @@ * along with this response */ bool -HttpReply::expectingBody(method_t req_method, ssize_t& theSize) const +HttpReply::expectingBody(method_t req_method, int64_t& theSize) const { bool expectBody = true; Index: src/HttpReply.h =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpReply.h,v retrieving revision 1.18.10.2 diff -u -r1.18.10.2 HttpReply.h --- src/HttpReply.h 19 Apr 2007 04:45:16 -0000 1.18.10.2 +++ src/HttpReply.h 6 May 2007 06:59:23 -0000 @@ -97,7 +97,7 @@ public: virtual int httpMsgParseError(); - virtual bool expectingBody(method_t, ssize_t&) const; + virtual bool expectingBody(method_t, int64_t&) const; void updateOnNotModified(HttpReply const *other); @@ -116,7 +116,7 @@ void redirect(http_status, const char *); - int bodySize(method_t) const; + int64_t bodySize(method_t) const; int validatorsMatch (HttpReply const *other) const; Index: src/HttpRequest.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpRequest.cc,v retrieving revision 1.38.2.1 diff -u -r1.38.2.1 HttpRequest.cc --- src/HttpRequest.cc 30 Apr 2007 17:08:09 -0000 1.38.2.1 +++ src/HttpRequest.cc 6 May 2007 06:59:23 -0000 @@ -373,7 +373,7 @@ * along with this request */ bool -HttpRequest::expectingBody(method_t unused, ssize_t& theSize) const +HttpRequest::expectingBody(method_t unused, int64_t& theSize) const { bool expectBody = false; Index: src/HttpRequest.h =================================================================== RCS file: /cvsroot/squid/squid3/src/HttpRequest.h,v retrieving revision 1.26 diff -u -r1.26 HttpRequest.h --- src/HttpRequest.h 16 Apr 2007 18:04:49 -0000 1.26 +++ src/HttpRequest.h 6 May 2007 06:59:38 -0000 @@ -135,7 +135,7 @@ int parseHeader(const char *parse_start, int len); - virtual bool expectingBody(method_t unused, ssize_t&) const; + virtual bool expectingBody(method_t unused, int64_t&) const; bool bodyNibbled() const; // the request has a [partially] consumed body Index: src/Parsing.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/Parsing.cc,v retrieving revision 1.3 diff -u -r1.3 Parsing.cc --- src/Parsing.cc 8 Oct 2006 13:51:46 -0000 1.3 +++ src/Parsing.cc 6 May 2007 06:59:38 -0000 @@ -125,3 +125,23 @@ return false; } + +bool +StringToInt64(const char *s, int64_t &result, const char **p, int base) +{ + if (s) { + char *ptr = 0; + const int64_t h = (int64_t) strtoll(s, &ptr, base); + + if (ptr != s && ptr) { + result = h; + + if (p) + *p = ptr; + + return true; + } + } + + return false; +} Index: src/Parsing.h =================================================================== RCS file: /cvsroot/squid/squid3/src/Parsing.h,v retrieving revision 1.3 diff -u -r1.3 Parsing.h --- src/Parsing.h 8 Oct 2006 13:51:46 -0000 1.3 +++ src/Parsing.h 6 May 2007 06:59:38 -0000 @@ -47,5 +47,6 @@ // on success, returns true and sets *p (if any) to the end of the integer extern bool StringToInt(const char *str, int &result, const char **p, int base); +extern bool StringToInt64(const char *str, int64_t &result, const char **p, int base); #endif /* SQUID_PARSING_H */ Index: src/Server.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/Server.cc,v retrieving revision 1.6.6.2 diff -u -r1.6.6.2 Server.cc --- src/Server.cc 1 May 2007 21:03:42 -0000 1.6.6.2 +++ src/Server.cc 6 May 2007 06:59:38 -0000 @@ -313,7 +313,7 @@ assert(!virginBodyDestination); assert(!reply->body_pipe); // start body pipe to feed ICAP transaction if needed - ssize_t size = 0; + int64_t size = 0; if (reply->expectingBody(cause->method, size) && size) { virginBodyDestination = new BodyPipe(this); reply->body_pipe = virginBodyDestination; Index: src/client_side.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/client_side.cc,v retrieving revision 1.121.2.8 diff -u -r1.121.2.8 client_side.cc --- src/client_side.cc 1 May 2007 21:03:42 -0000 1.121.2.8 +++ src/client_side.cc 6 May 2007 07:00:23 -0000 @@ -755,7 +755,8 @@ size_t ClientSocketContext::lengthToSend(Range const &available) { - size_t maximum = available.size(); + /*the size of available range can always fit in a size_t type*/ + size_t maximum = (size_t)available.size(); if (!http->request->range) return maximum; @@ -768,10 +769,10 @@ assert (http->range_iter.debt() > 0); /* TODO this + the last line could be a range intersection calculation */ - if ((ssize_t)available.start < http->range_iter.currentSpec()->offset) + if (available.start < http->range_iter.currentSpec()->offset) return 0; - return XMIN(http->range_iter.debt(), (ssize_t)maximum); + return XMIN(http->range_iter.debt(), (int64_t)maximum); } void @@ -965,7 +966,7 @@ int ClientHttpRequest::mRangeCLen() { - int clen = 0; + int64_t clen = 0; MemBuf mb; assert(memObject()); @@ -1115,7 +1116,7 @@ request->range->contains(rep->content_range->spec) : true; const int spec_count = http->request->range->specs.count; - int actual_clen = -1; + int64_t actual_clen = -1; debugs(33, 3, "clientBuildRangeHeader: range spec count: " << spec_count << " virgin clen: " << rep->content_length); Index: src/fde.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/fde.cc,v retrieving revision 1.6.6.2 diff -u -r1.6.6.2 fde.cc --- src/fde.cc 1 May 2007 16:31:53 -0000 1.6.6.2 +++ src/fde.cc 6 May 2007 07:00:36 -0000 @@ -60,7 +60,7 @@ fdNumber, win32.handle, #else - storeAppendPrintf(&dumpEntry, "%4d %-6.6s %4d %"PRId64"%c %"PRId64"%c %-21s %s\n", + storeAppendPrintf(&dumpEntry, "%4d %-6.6s %4d %7"PRId64"%c %7"PRId64"%c %-21s %s\n", fdNumber, #endif fdTypeStr[type], Index: src/http.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/http.cc,v retrieving revision 1.99.4.5 diff -u -r1.99.4.5 http.cc --- src/http.cc 1 May 2007 21:03:43 -0000 1.99.4.5 +++ src/http.cc 6 May 2007 07:03:29 -0000 @@ -917,7 +917,7 @@ if (!flags.headers_parsed) return INCOMPLETE_MSG; - const int clen = reply->bodySize(request->method); + const int64_t clen = reply->bodySize(request->method); debugs(11, 5, "persistentConnStatus: clen=" << clen); @@ -929,7 +929,7 @@ if (clen > 0) { // old technique: // if (entry->mem_obj->endOffset() < reply->content_length + reply->hdr_sz) - const int body_bytes_read = reply_bytes_read - header_bytes_read; + const int64_t body_bytes_read = reply_bytes_read - header_bytes_read; debugs(11,5, "persistentConnStatus: body_bytes_read=" << body_bytes_read << " content_length=" << reply->content_length); Index: src/peer_digest.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/peer_digest.cc,v retrieving revision 1.27.6.3 diff -u -r1.27.6.3 peer_digest.cc --- src/peer_digest.cc 1 May 2007 21:03:43 -0000 1.27.6.3 +++ src/peer_digest.cc 6 May 2007 07:04:15 -0000 @@ -787,7 +787,7 @@ if (!reason && !size) { if (!pd->cd) reason = "null digest?!"; - else if (fetch->mask_offset != (off_t)pd->cd->mask_size) + else if (fetch->mask_offset != (int)pd->cd->mask_size) reason = "premature end of digest?!"; else if (!peerDigestUseful(pd)) reason = "useless digest"; Index: src/store_client.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/store_client.cc,v retrieving revision 1.29.2.7 diff -u -r1.29.2.7 store_client.cc --- src/store_client.cc 1 May 2007 21:03:44 -0000 1.29.2.7 +++ src/store_client.cc 6 May 2007 07:05:49 -0000 @@ -229,7 +229,7 @@ assert (data); assert(!EBIT_TEST(entry->flags, ENTRY_ABORTED)); debugs(90, 3, "store_client::copy: " << entry->getMD5Text() << ", from " << - (unsigned long) copyRequest.offset << ", for length " << + copyRequest.offset << ", for length " << (int) copyRequest.length << ", cb " << callback_fn << ", cbdata " << data); @@ -341,8 +341,8 @@ MemObject *mem = entry->mem_obj; debugs(33, 5, "store_client::doCopy: co: " << - (unsigned long) copyInto.offset << ", hi: " << - (long int) mem->endOffset()); + copyInto.offset << ", hi: " << + mem->endOffset()); if (storeClientNoMoreToSend(entry, this)) { /* There is no more to send! */ @@ -581,7 +581,7 @@ */ size_t body_sz = len - mem->swap_hdr_sz; - if (static_cast(copyInto.offset) < body_sz) { + if (copyInto.offset < static_cast(body_sz)) { /* * we have (part of) what they want */ @@ -837,8 +837,8 @@ output->Printf("\tClient #%d, %p\n", clientNumber, _callback.callback_data); - output->Printf("\t\tcopy_offset: %lu\n", - (unsigned long) copyInto.offset); + output->Printf("\t\tcopy_offset: %"PRId64"\n", + copyInto.offset); output->Printf("\t\tcopy_size: %d\n", (int) copyInto.length); Index: src/ICAP/ChunkedCodingParser.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/ICAP/ChunkedCodingParser.cc,v retrieving revision 1.4 diff -u -r1.4 ChunkedCodingParser.cc --- src/ICAP/ChunkedCodingParser.cc 6 Apr 2007 12:54:14 -0000 1.4 +++ src/ICAP/ChunkedCodingParser.cc 6 May 2007 07:05:49 -0000 @@ -66,10 +66,10 @@ if (findCrlf(crlfBeg, crlfEnd)) { debugs(93,7, "found chunk-size end: " << crlfBeg << "-" << crlfEnd); - int size = -1; + int64_t size = -1; const char *p = 0; - if (StringToInt(theIn->content(), size, &p, 16)) { + if (StringToInt64(theIn->content(), size, &p, 16)) { if (size < 0) { throw TexcHere("negative chunk size"); return; @@ -104,7 +104,7 @@ { Must(theLeftBodySize > 0); // Should, really - const size_t availSize = XMIN(theLeftBodySize, (size_t)theIn->contentSize()); + const size_t availSize = XMIN(theLeftBodySize, (uint64_t)theIn->contentSize()); const size_t safeSize = XMIN(availSize, (size_t)theOut->potentialSpaceSize()); doNeedMoreData = availSize < theLeftBodySize; Index: src/ICAP/ChunkedCodingParser.h =================================================================== RCS file: /cvsroot/squid/squid3/src/ICAP/ChunkedCodingParser.h,v retrieving revision 1.2 diff -u -r1.2 ChunkedCodingParser.h --- src/ICAP/ChunkedCodingParser.h 22 Nov 2005 03:13:08 -0000 1.2 +++ src/ICAP/ChunkedCodingParser.h 6 May 2007 07:05:49 -0000 @@ -82,8 +82,8 @@ MemBuf *theOut; Step theStep; - size_t theChunkSize; - size_t theLeftBodySize; + uint64_t theChunkSize; + uint64_t theLeftBodySize; bool doNeedMoreData; }; Index: src/ICAP/ICAPModXact.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPModXact.cc,v retrieving revision 1.19.6.2 diff -u -r1.19.6.2 ICAPModXact.cc --- src/ICAP/ICAPModXact.cc 30 Apr 2007 17:08:18 -0000 1.19.6.2 +++ src/ICAP/ICAPModXact.cc 6 May 2007 07:06:56 -0000 @@ -328,20 +328,20 @@ { Must(act.active()); // asbolute start of unprocessed data - const size_t start = act.offset(); + const uint64_t start = act.offset(); // absolute end of buffered data - const size_t end = virginConsumed + virgin.body_pipe->buf().contentSize(); + const uint64_t end = virginConsumed + virgin.body_pipe->buf().contentSize(); Must(virginConsumed <= start && start <= end); - return end - start; + return static_cast(end - start); } // pointer to buffered virgin body data available for the specified activity const char *ICAPModXact::virginContentData(const VirginBodyAct &act) const { Must(act.active()); - const size_t start = act.offset(); + const uint64_t start = act.offset(); Must(virginConsumed <= start); - return virgin.body_pipe->buf().content() + (start-virginConsumed); + return virgin.body_pipe->buf().content() + static_cast(start-virginConsumed); } void ICAPModXact::virginConsume() @@ -351,8 +351,8 @@ BodyPipe &bp = *virgin.body_pipe; const size_t have = static_cast(bp.buf().contentSize()); - const size_t end = virginConsumed + have; - size_t offset = end; + const uint64_t end = virginConsumed + have; + uint64_t offset = end; if (virginBodyWriting.active()) offset = XMIN(virginBodyWriting.offset(), offset); @@ -362,7 +362,7 @@ Must(virginConsumed <= offset && offset <= end); - if (const size_t size = offset - virginConsumed) { + if (const size_t size = static_cast(offset - virginConsumed)) { debugs(93, 8, HERE << "consuming " << size << " out of " << have << " virgin body bytes"); bp.consume(size); @@ -1120,7 +1120,7 @@ ad = 0; else if (virginBody.knownSize()) - ad = XMIN(ad, virginBody.size()); // not more than we have + ad = XMIN(static_cast(ad), virginBody.size()); // not more than we have debugs(93, 5, "ICAPModXact should offer " << ad << "-byte preview " << "(service wanted " << wantedSize << ")"); @@ -1252,7 +1252,7 @@ else method = METHOD_NONE; - ssize_t size; + int64_t size; // expectingBody returns true for zero-sized bodies, but we will not // get a pipe for that body, so we treat the message as bodyless if (method != METHOD_NONE && msg->expectingBody(method, size) && size) { @@ -1292,9 +1292,9 @@ : theData(dtUnexpected) {} -void SizedEstimate::expect(ssize_t aSize) +void SizedEstimate::expect(int64_t aSize) { - theData = (aSize >= 0) ? aSize : (ssize_t)dtUnknown; + theData = (aSize >= 0) ? aSize : (int64_t)dtUnknown; } bool SizedEstimate::expected() const @@ -1308,10 +1308,10 @@ return theData != dtUnknown; } -size_t SizedEstimate::size() const +uint64_t SizedEstimate::size() const { Must(knownSize()); - return static_cast(theData); + return static_cast(theData); } @@ -1334,13 +1334,13 @@ { Must(active()); Must(size >= 0); - theStart += static_cast(size); + theStart += static_cast(size); } -size_t VirginBodyAct::offset() const +uint64_t VirginBodyAct::offset() const { Must(active()); - return static_cast(theStart); + return static_cast(theStart); } Index: src/ICAP/ICAPModXact.h =================================================================== RCS file: /cvsroot/squid/squid3/src/ICAP/ICAPModXact.h,v retrieving revision 1.6 diff -u -r1.6 ICAPModXact.h --- src/ICAP/ICAPModXact.h 6 Apr 2007 05:52:43 -0000 1.6 +++ src/ICAP/ICAPModXact.h 6 May 2007 07:06:56 -0000 @@ -58,17 +58,17 @@ public: SizedEstimate(); // not expected by default - void expect(ssize_t aSize); // expect with any, even unknown size + void expect(int64_t aSize); // expect with any, even unknown size bool expected() const; /* other members can be accessed iff expected() */ bool knownSize() const; - size_t size() const; // can be accessed iff knownSize() + uint64_t size() const; // can be accessed iff knownSize() private: enum { dtUnexpected = -2, dtUnknown = -1 }; - ssize_t theData; // combines expectation and size info to save RAM + int64_t theData; // combines expectation and size info to save RAM }; // Virgin body may be used for two activities: (a) writing preview or prime @@ -88,11 +88,11 @@ // methods below require active() - size_t offset() const; // the absolute beginning of not-yet-acted-on data + uint64_t offset() const; // the absolute beginning of not-yet-acted-on data void progress(size_t size); // note processed body bytes private: - ssize_t theStart; // offset, unless negative. + int64_t theStart; // offset, unless negative. }; @@ -244,7 +244,7 @@ SizedEstimate virginBody; VirginBodyAct virginBodyWriting; // virgin body writing state VirginBodyAct virginBodySending; // virgin body sending state - size_t virginConsumed; // virgin data consumed so far + uint64_t virginConsumed; // virgin data consumed so far ICAPPreview preview; // use for creating (writing) the preview ChunkedCodingParser *bodyParser; // ICAP response body parser Index: src/tests/stub_HttpReply.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/tests/stub_HttpReply.cc,v retrieving revision 1.3.10.2 diff -u -r1.3.10.2 stub_HttpReply.cc --- src/tests/stub_HttpReply.cc 19 Apr 2007 04:46:38 -0000 1.3.10.2 +++ src/tests/stub_HttpReply.cc 6 May 2007 07:07:06 -0000 @@ -90,7 +90,7 @@ } bool -HttpReply::expectingBody(method_t, ssize_t&) const +HttpReply::expectingBody(method_t, int64_t&) const { fatal ("Not implemented"); return false; Index: src/tests/stub_HttpRequest.cc =================================================================== RCS file: /cvsroot/squid/squid3/src/tests/stub_HttpRequest.cc,v retrieving revision 1.3 diff -u -r1.3 stub_HttpRequest.cc --- src/tests/stub_HttpRequest.cc 18 Apr 2006 13:50:53 -0000 1.3 +++ src/tests/stub_HttpRequest.cc 6 May 2007 07:07:06 -0000 @@ -75,7 +75,7 @@ } bool -HttpRequest::expectingBody(method_t unused, ssize_t&) const +HttpRequest::expectingBody(method_t unused, int64_t&) const { fatal("Not implemented"); return false;