[master] 7fdeea4 Add new vcl_fetch{} and call it before vcl_miss{} and vcl_pass{} as an interrim measure.
Poul-Henning Kamp
phk at varnish-cache.org
Wed Mar 20 14:01:53 CET 2013
commit 7fdeea4ca8358a24ca9ec1f11cd2d8d2e1f695d7
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Mar 20 13:00:58 2013 +0000
Add new vcl_fetch{} and call it before vcl_miss{} and vcl_pass{}
as an interrim measure.
Use it in a few test-cases where it relates only to the backend
fetch (as opposed to pass/purge/restart)
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index 2c65976..fa9de50 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -907,6 +907,7 @@ cnt_miss(struct worker *wrk, struct req *req)
http_SetHeader(bo->bereq, "Accept-Encoding: gzip");
}
+ VCL_fetch_method(req);
VCL_miss_method(req);
if (req->handling == VCL_RET_FETCH) {
@@ -971,6 +972,7 @@ cnt_pass(struct worker *wrk, struct req *req)
HTTP_Setup(bo->bereq, bo->ws, bo->vsl, HTTP_Bereq);
http_FilterReq(req, HTTPH_R_PASS);
+ VCL_fetch_method(req);
VCL_pass_method(req);
if (req->handling == VCL_RET_ERROR) {
diff --git a/bin/varnishd/default.vcl b/bin/varnishd/default.vcl
index 8b90194..986f276 100644
--- a/bin/varnishd/default.vcl
+++ b/bin/varnishd/default.vcl
@@ -101,6 +101,10 @@ sub vcl_miss {
return (fetch);
}
+sub vcl_fetch {
+ return (fetch);
+}
+
sub vcl_response {
if (beresp.ttl <= 0s ||
beresp.http.Set-Cookie ||
diff --git a/bin/varnishtest/tests/b00021.vtc b/bin/varnishtest/tests/b00021.vtc
index eedcca2..331635b 100644
--- a/bin/varnishtest/tests/b00021.vtc
+++ b/bin/varnishtest/tests/b00021.vtc
@@ -10,7 +10,7 @@ server s1 {
} -start
varnish v1 -vcl+backend {
- sub vcl_miss {
+ sub vcl_fetch {
set bereq.between_bytes_timeout = 2s;
}
sub vcl_response {
diff --git a/bin/varnishtest/tests/b00024.vtc b/bin/varnishtest/tests/b00024.vtc
index bbca487..421ed0d 100644
--- a/bin/varnishtest/tests/b00024.vtc
+++ b/bin/varnishtest/tests/b00024.vtc
@@ -9,7 +9,7 @@ server s1 {
} -start
varnish v1 -vcl+backend {
- sub vcl_miss {
+ sub vcl_fetch {
set bereq.first_byte_timeout = 1s;
}
} -start
diff --git a/bin/varnishtest/tests/b00026.vtc b/bin/varnishtest/tests/b00026.vtc
index 1cc1998..048c58e 100644
--- a/bin/varnishtest/tests/b00026.vtc
+++ b/bin/varnishtest/tests/b00026.vtc
@@ -34,7 +34,7 @@ varnish v1 -vcl {
}
set req.backend = b2;
}
- sub vcl_miss {
+ sub vcl_fetch {
set bereq.first_byte_timeout = 2s;
}
} -start
diff --git a/bin/varnishtest/tests/m00006.vtc b/bin/varnishtest/tests/m00006.vtc
index 72b7e7f..b1a57a8 100644
--- a/bin/varnishtest/tests/m00006.vtc
+++ b/bin/varnishtest/tests/m00006.vtc
@@ -18,7 +18,7 @@ varnish v1 -vcl+backend {
sub vcl_recv {
std.collect(req.http.foo);
}
- sub vcl_miss {
+ sub vcl_fetch {
std.collect(bereq.http.baz);
}
sub vcl_response {
diff --git a/bin/varnishtest/tests/r00781.vtc b/bin/varnishtest/tests/r00781.vtc
index 94d0132..52738e5 100644
--- a/bin/varnishtest/tests/r00781.vtc
+++ b/bin/varnishtest/tests/r00781.vtc
@@ -9,7 +9,7 @@ varnish v1 -vcl+backend {
sub vcl_recv {
set req.url = req.http.foo;
}
- sub vcl_miss {
+ sub vcl_fetch {
set bereq.url = req.http.foo;
}
} -start
diff --git a/bin/varnishtest/tests/v00001.vtc b/bin/varnishtest/tests/v00001.vtc
index 3b8492c..2f0d47c 100644
--- a/bin/varnishtest/tests/v00001.vtc
+++ b/bin/varnishtest/tests/v00001.vtc
@@ -18,7 +18,7 @@ varnish v1 -vcl+backend {
set req.proto = "HTTP/1.2";
set req.method = "GET";
}
- sub vcl_miss {
+ sub vcl_fetch {
set bereq.http.foobar =
bereq.url +
bereq.proto;
diff --git a/bin/varnishtest/tests/v00017.vtc b/bin/varnishtest/tests/v00017.vtc
index 9c385f5..71d9dd5 100644
--- a/bin/varnishtest/tests/v00017.vtc
+++ b/bin/varnishtest/tests/v00017.vtc
@@ -67,7 +67,7 @@ varnish v1 -vcl {
varnish v1 -vcl {
backend b { .host = "127.0.0.1"; }
sub vcl_recv { if (client.ip == "127.0.0.1") { return(pass); } }
- sub vcl_miss { if (client.ip != "127.0.0.1") { return(pass); } }
+ sub vcl_fetch { if (client.ip != "127.0.0.1") { return(pass); } }
}
varnish v1 -errvcl {Operator > not possible on IP} {
diff --git a/bin/varnishtest/tests/v00025.vtc b/bin/varnishtest/tests/v00025.vtc
index ab77fdf..e7b7675 100644
--- a/bin/varnishtest/tests/v00025.vtc
+++ b/bin/varnishtest/tests/v00025.vtc
@@ -41,7 +41,7 @@ sub vcl_hit {
}
}
-sub vcl_miss {
+sub vcl_fetch {
if (bereq.between_bytes_timeout < 10s) {
set bereq.http.quick = "please";
}
diff --git a/lib/libvcl/generate.py b/lib/libvcl/generate.py
index 51dc8b6..af32e23 100755
--- a/lib/libvcl/generate.py
+++ b/lib/libvcl/generate.py
@@ -84,6 +84,7 @@ returns =(
('hash', ('hash',)),
('miss', ('error', 'restart', 'pass', 'fetch',)),
('hit', ('error', 'restart', 'pass', 'deliver',)),
+ ('fetch', ('error', 'fetch', 'pass',)),
('response', ('error', 'restart', 'deliver',)),
('deliver', ('restart', 'deliver',)),
('error', ('restart', 'deliver',)),
@@ -238,50 +239,50 @@ sp_variables = (
),
('bereq.method',
'STRING',
- ( 'pipe', 'pass', 'miss', 'response',),
- ( 'pipe', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
'const struct req *'
),
('bereq.request',
'STRING',
- ( 'pipe', 'pass', 'miss', 'response',),
- ( 'pipe', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
'const struct req *'
),
('bereq.url',
'STRING',
- ( 'pipe', 'pass', 'miss', 'response',),
- ( 'pipe', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
'const struct req *'
),
('bereq.proto',
'STRING',
- ( 'pipe', 'pass', 'miss', 'response',),
- ( 'pipe', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
'const struct req *'
),
('bereq.http.',
'HEADER',
- ( 'pipe', 'pass', 'miss', 'response',),
- ( 'pipe', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
+ ( 'pipe', 'fetch', 'pass', 'miss', 'response',),
'const struct req *'
),
('bereq.connect_timeout',
'DURATION',
- ( 'pipe', 'pass', 'miss',),
- ( 'pipe', 'pass', 'miss',),
+ ( 'pipe', 'fetch', 'pass', 'miss',),
+ ( 'pipe', 'fetch', 'pass', 'miss',),
'struct req *'
),
('bereq.first_byte_timeout',
'DURATION',
- ( 'pass', 'miss',),
- ( 'pass', 'miss',),
+ ( 'fetch', 'pass', 'miss',),
+ ( 'fetch', 'pass', 'miss',),
'struct req *'
),
('bereq.between_bytes_timeout',
'DURATION',
- ( 'pass', 'miss',),
- ( 'pass', 'miss',),
+ ( 'fetch', 'pass', 'miss',),
+ ( 'fetch', 'pass', 'miss',),
'struct req *'
),
('beresp.proto',
More information about the varnish-commit
mailing list