[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