r4710 - in branches/2.1: . varnish-cache/bin/varnishd varnish-cache/bin/varnishtest/tests varnish-cache/include varnish-cache/lib/libvarnish varnish-cache/lib/libvcl
tfheen at varnish-cache.org
tfheen at varnish-cache.org
Wed Apr 21 12:47:57 CEST 2010
Author: tfheen
Date: 2010-04-21 12:47:57 +0200 (Wed, 21 Apr 2010)
New Revision: 4710
Modified:
branches/2.1/
branches/2.1/varnish-cache/bin/varnishd/cache_backend.h
branches/2.1/varnish-cache/bin/varnishd/cache_backend_cfg.c
branches/2.1/varnish-cache/bin/varnishd/cache_response.c
branches/2.1/varnish-cache/bin/varnishd/vparam.h
branches/2.1/varnish-cache/bin/varnishtest/tests/c00019.vtc
branches/2.1/varnish-cache/bin/varnishtest/tests/c00034.vtc
branches/2.1/varnish-cache/bin/varnishtest/tests/r00325.vtc
branches/2.1/varnish-cache/bin/varnishtest/tests/r00416.vtc
branches/2.1/varnish-cache/bin/varnishtest/tests/v00011.vtc
branches/2.1/varnish-cache/include/vct.h
branches/2.1/varnish-cache/include/vev.h
branches/2.1/varnish-cache/lib/libvarnish/tcp.c
branches/2.1/varnish-cache/lib/libvarnish/vev.c
branches/2.1/varnish-cache/lib/libvcl/vcc_dir_random.c
Log:
Merge r4700: Tune Range: handling based on real-world sample:
Also support: bytes=-%d bytes=%d- bytes=-
And ignore plain wrong cases, such as starter past end of object or
end before start etc.
Property changes on: branches/2.1
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk:4637,4640,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk:4637,4640,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/bin/varnishd/cache_backend.h
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishd/cache_backend.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishd/cache_backend.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/bin/varnishd/cache_backend_cfg.c
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishd/cache_backend_cfg.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishd/cache_backend_cfg.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Modified: branches/2.1/varnish-cache/bin/varnishd/cache_response.c
===================================================================
--- branches/2.1/varnish-cache/bin/varnishd/cache_response.c 2010-04-21 10:40:27 UTC (rev 4709)
+++ branches/2.1/varnish-cache/bin/varnishd/cache_response.c 2010-04-21 10:47:57 UTC (rev 4710)
@@ -137,41 +137,51 @@
if (strncmp(r, "bytes=", 6))
return;
r += 6;
- printf("-----------------RANGE: <%s>\n", r);
+
+ /* The low end of range */
low = 0;
- high = 0;
- if (!vct_isdigit(*r))
+ if (!vct_isdigit(*r) && *r != '-')
return;
while (vct_isdigit(*r)) {
low *= 10;
low += *r - '0';
r++;
}
+
+ if (low >= sp->obj->len)
+ return;
+
if (*r != '-')
return;
r++;
- if (!vct_isdigit(*r))
- return;
- while (vct_isdigit(*r)) {
- high *= 10;
- high += *r - '0';
- r++;
- }
+
+ /* The high end of range */
+ if (vct_isdigit(*r)) {
+ high = 0;
+ while (vct_isdigit(*r)) {
+ high *= 10;
+ high += *r - '0';
+ r++;
+ }
+ } else
+ high = sp->obj->len - 1;
if (*r != '\0')
return;
- printf("-----------------RANGE: %u %u\n", low, high);
+
if (high >= sp->obj->len)
- high = sp->obj->len - 1;
- if (low == 0 && high >= sp->obj->len)
+ high = sp->obj->len;
+
+ if (low > high)
return;
-
http_PrintfHeader(sp->wrk, sp->fd, sp->wrk->resp,
"Content-Range: bytes %u-%u/%u", low, high, sp->obj->len);
http_Unset(sp->wrk->resp, H_Content_Length);
http_PrintfHeader(sp->wrk, sp->fd, sp->wrk->resp,
"Content-Length: %u", 1 + high - low);
http_SetResp(sp->wrk->resp, "HTTP/1.1", "206", "Partial Content");
+
+
*plow = low;
*phigh = high;
}
Property changes on: branches/2.1/varnish-cache/bin/varnishd/vparam.h
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishd/vparam.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishd/vparam.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/bin/varnishtest/tests/c00019.vtc
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishtest/tests/c00019.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishtest/tests/c00019.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Modified: branches/2.1/varnish-cache/bin/varnishtest/tests/c00034.vtc
===================================================================
--- branches/2.1/varnish-cache/bin/varnishtest/tests/c00034.vtc 2010-04-21 10:40:27 UTC (rev 4709)
+++ branches/2.1/varnish-cache/bin/varnishtest/tests/c00034.vtc 2010-04-21 10:47:57 UTC (rev 4710)
@@ -51,9 +51,39 @@
expect resp.status == 206
expect resp.bodylen == 10
- txreq -hdr "Range: bytes=90-101"
+ txreq -hdr "Range: bytes=90-"
rxresp
expect resp.status == 206
expect resp.bodylen == 10
+
+ txreq -hdr "Range: bytes=-9"
+ rxresp
+ expect resp.status == 206
+ expect resp.bodylen == 10
+
+ txreq -hdr "Range: bytes=-"
+ rxresp
+ expect resp.status == 206
+ expect resp.bodylen == 100
+
+ txreq -hdr "Range: bytes=102-102"
+ rxresp
+ expect resp.status == 200
+ expect resp.bodylen == 100
+
+ txreq -hdr "Range: bytes=99-"
+ rxresp
+ expect resp.status == 206
+ expect resp.bodylen == 1
+
+ txreq -hdr "Range: bytes=99-70"
+ rxresp
+ expect resp.status == 200
+ expect resp.bodylen == 100
+
+ txreq -hdr "Range: bytes=-"
+ rxresp
+ expect resp.status == 206
+ expect resp.bodylen == 100
} -run
Property changes on: branches/2.1/varnish-cache/bin/varnishtest/tests/r00325.vtc
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishtest/tests/r00325.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishtest/tests/r00325.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/bin/varnishtest/tests/r00416.vtc
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishtest/tests/r00416.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishtest/tests/r00416.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/bin/varnishtest/tests/v00011.vtc
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/bin/varnishtest/tests/v00011.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/bin/varnishtest/tests/v00011.vtc:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/include/vct.h
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/include/vct.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/include/vct.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/include/vev.h
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/include/vev.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/include/vev.h:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/lib/libvarnish/tcp.c
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/lib/libvarnish/tcp.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/lib/libvarnish/tcp.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/lib/libvarnish/vev.c
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/lib/libvarnish/vev.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/lib/libvarnish/vev.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
Property changes on: branches/2.1/varnish-cache/lib/libvcl/vcc_dir_random.c
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/varnish-cache/lib/libvcl/vcc_dir_random.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690
+ /trunk/varnish-cache/lib/libvcl/vcc_dir_random.c:4637,4643-4645,4647-4650,4654-4670,4686,4689-4690,4700
More information about the varnish-commit
mailing list