ozeigermann 2004/02/05 03:35:40
Modified: src/webdav/server/org/apache/slide/webdav/method Tag:
SLIDE_2_0_RELEASE_BRANCH GetMethod.java
Log:
Applyed patch by Chris Sharp:
The "Content-Length" header is incorrectly set to the size of total file
length and not the length of the range requested. This patch fixes it.
Revision Changes Path
No revision
No revision
1.40.2.1 +9 -7
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/GetMethod.java
Index: GetMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/GetMethod.java,v
retrieving revision 1.40
retrieving revision 1.40.2.1
diff -u -r1.40 -r1.40.2.1
--- GetMethod.java 18 Sep 2003 11:01:07 -0000 1.40
+++ GetMethod.java 5 Feb 2004 11:35:40 -0000 1.40.2.1
@@ -309,7 +309,7 @@
resp.addHeader("Content-Range", "bytes "
+ range.start
+ "-" + range.end + "/"
- + range.length);
+ + range.fileLength);
resp.setContentLength((int) range.length);
resp.setContentType
(revisionDescriptor.getContentType());
@@ -687,7 +687,7 @@
ostream.println("Content-Type: " + contentType);
ostream.println("Content-Range: bytes " + currentRange.start
+ "-" + currentRange.end + "/"
- + currentRange.length);
+ + currentRange.fileLength);
ostream.println();
// Printing content
@@ -887,7 +887,7 @@
String rangeDefinition = commaTokenizer.nextToken();
Range currentRange = new Range();
- currentRange.length = fileLength;
+ currentRange.fileLength = fileLength;
int dashPos = rangeDefinition.indexOf('-');
@@ -930,6 +930,7 @@
}
+ currentRange.length = (currentRange.end - currentRange.start);
if (!currentRange.validate()) {
response.sendError
(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
@@ -951,13 +952,14 @@
public long start;
public long end;
public long length;
+ public long fileLength;
/**
* Validate range.
*/
public boolean validate() {
return ( (start >= 0) && (end >= 0) && (length > 0)
- && (start <= end) && (end < length) );
+ && (start <= end) && (end < fileLength) && (fileLength >=
length));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]