You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2001/06/19 20:58:28 UTC
[Bug 2238] New: - libWWW problems with broken proxys and range requests
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2238
*** shadow/2238 Tue Jun 19 11:58:28 2001
--- shadow/2238.tmp.25106 Tue Jun 19 11:58:28 2001
***************
*** 0 ****
--- 1,52 ----
+ +============================================================================+
+ | libWWW problems with broken proxys and range requests |
+ +----------------------------------------------------------------------------+
+ | Bug #: 2238 Product: Xerces-C |
+ | Status: NEW Version: 1.5 |
+ | Resolution: Platform: Alpha |
+ | Severity: Normal OS/Version: Other |
+ | Priority: Other Component: Utilities |
+ +----------------------------------------------------------------------------+
+ | Assigned To: xerces-c-dev@xml.apache.org |
+ | Reported By: Artur.Klauser@computer.org |
+ | CC list: Cc: |
+ +----------------------------------------------------------------------------+
+ | URL: |
+ +============================================================================+
+ | DESCRIPTION |
+ Some broken proxy servers (e.g. the one behind which I happen to reside,
+ which apparently is Server: Microsoft-IIS/5.0)
+ implement wrong boundary conditions for range requests. In particular,
+ (1) request ranges straddling the content length of the document
+ give bogus header information
+ Content-Range: bytes X-Y/Z
+ where Y > Z, and give 0 bytes of actual message content.
+ (2) request ranges beyond the content length of the document do not
+ give an error response as asked for in RFC2616 (http/1.1)
+
+ Since the NetAccessor code was just trying to fall off the end of the
+ document with the last range request (ie. hitting case 1 above), it
+ never gets the last chunk of data from this proxy server.
+
+ Here is a patch:
+ # diff -c BinURLInputStream.cpp BinURLInputStream.cpp.orig
+ *** BinURLInputStream.cpp Tue Jun 19 14:30:48 2001
+ --- BinURLInputStream.cpp.orig Tue Jun 19 14:29:11 2001
+ ***************
+ *** 276,282 ****
+ // range of bytes that you would like.
+
+ sprintf(ranges, "%ld-%ld",
+ ! fBytesProcessed, MIN(fBytesProcessed + URLISBUFMAXSIZE - 1,
+ fRemoteFileSize - 1));
+ HTRequest_addRange(request, "bytes", ranges);
+ HTRequest_setOutputFormat(request, WWW_SOURCE);
+ result = HTLoadAnchorToChunk(fAnchor, request);
+ --- 271,277 ----
+ // range of bytes that you would like.
+
+ sprintf(ranges, "%ld-%ld",
+ ! fBytesProcessed, fBytesProcessed + URLISBUFMAXSIZE - 1);
+ HTRequest_addRange(request, "bytes", ranges);
+ HTRequest_setOutputFormat(request, WWW_SOURCE);
+ result = HTLoadAnchorToChunk(fAnchor, request);
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org