[4.0] 7f97686 Rename req.backend to req.backend_hint and restrict it to vcl_recv{}
Poul-Henning Kamp
phk at FreeBSD.org
Thu Mar 13 10:24:23 CET 2014
commit 7f9768602064589d122f72aea95e05c894c7e975
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Feb 5 10:44:34 2014 +0000
Rename req.backend to req.backend_hint and restrict it to vcl_recv{}
Rename beresp.storage to beresp.storage_hint for consistency.
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 6e522bb..93ec51f 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -664,7 +664,7 @@ struct req {
uint16_t err_code;
const char *err_reason;
- struct director *director;
+ struct director *director_hint;
struct VCL_conf *vcl;
char *ws_req; /* WS above request data */
diff --git a/bin/varnishd/cache/cache_busyobj.c b/bin/varnishd/cache/cache_busyobj.c
index 2466404..65a24bf 100644
--- a/bin/varnishd/cache/cache_busyobj.c
+++ b/bin/varnishd/cache/cache_busyobj.c
@@ -144,7 +144,7 @@ VBO_GetBusyObj(struct worker *wrk, const struct req *req)
bo->do_stream = 1;
- bo->director = req->director;
+ bo->director = req->director_hint;
bo->vcl = req->vcl;
VCL_Ref(bo->vcl);
diff --git a/bin/varnishd/cache/cache_hash.c b/bin/varnishd/cache/cache_hash.c
index eb69164..b7eba44 100644
--- a/bin/varnishd/cache/cache_hash.c
+++ b/bin/varnishd/cache/cache_hash.c
@@ -357,7 +357,6 @@ HSH_Lookup(struct req *req, struct objcore **ocp, struct objcore **bocp,
wrk = req->wrk;
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req->http, HTTP_MAGIC);
- AN(req->director);
AN(hash);
hsh_prealloc(wrk);
diff --git a/bin/varnishd/cache/cache_http1_fsm.c b/bin/varnishd/cache/cache_http1_fsm.c
index 3389f6d..5d0f286 100644
--- a/bin/varnishd/cache/cache_http1_fsm.c
+++ b/bin/varnishd/cache/cache_http1_fsm.c
@@ -183,7 +183,7 @@ http1_cleanup(struct sess *sp, struct worker *wrk, struct req *req)
CHECK_OBJ_ORNULL(req->vcl, VCL_CONF_MAGIC);
AZ(req->obj);
- req->director = NULL;
+ req->director_hint = NULL;
req->restarts = 0;
AZ(req->esi_level);
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index ec7713a..b2f3ef0 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -208,7 +208,7 @@ cnt_error(struct worker *wrk, struct req *req)
bo->stats = NULL;
if (req->obj == NULL) {
req->doclose = SC_OVERLOAD;
- req->director = NULL;
+ req->director_hint = NULL;
AZ(HSH_DerefObjCore(&wrk->stats, &bo->fetch_objcore));
bo->fetch_objcore = NULL;
http_Teardown(bo->beresp);
@@ -634,7 +634,7 @@ cnt_restart(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- req->director = NULL;
+ req->director_hint = NULL;
if (++req->restarts >= cache_param->max_restarts) {
VSLb(req->vsl, SLT_VCL_Error, "Too many restarts");
req->err_code = 503;
@@ -698,9 +698,9 @@ cnt_recv(struct worker *wrk, struct req *req)
}
/* By default we use the first backend */
- AZ(req->director);
- req->director = req->vcl->director[0];
- AN(req->director);
+ AZ(req->director_hint);
+ req->director_hint = req->vcl->director[0];
+ AN(req->director_hint);
req->d_ttl = -1;
req->disable_esi = 0;
diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index dad35f3..5d875ed 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -279,7 +279,7 @@ VRT_r_beresp_backend_ip(const struct vrt_ctx *ctx)
}
const char *
-VRT_r_beresp_storage(const struct vrt_ctx *ctx)
+VRT_r_beresp_storage_hint(const struct vrt_ctx *ctx)
{
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(ctx->bo, BUSYOBJ_MAGIC);
@@ -290,7 +290,7 @@ VRT_r_beresp_storage(const struct vrt_ctx *ctx)
}
void
-VRT_l_beresp_storage(const struct vrt_ctx *ctx, const char *str, ...)
+VRT_l_beresp_storage_hint(const struct vrt_ctx *ctx, const char *str, ...)
{
va_list ap;
const char *b;
@@ -326,8 +326,8 @@ VRT_r_req_##nm(const struct vrt_ctx *ctx) \
return(ctx->req->elem); \
}
-REQ_VAR_L(backend, director, struct director *,)
-REQ_VAR_R(backend, director, struct director *)
+REQ_VAR_L(backend_hint, director_hint, struct director *,)
+REQ_VAR_R(backend_hint, director_hint, struct director *)
REQ_VAR_L(ttl, d_ttl, double, if (!(arg>0.0)) arg = 0;)
REQ_VAR_R(ttl, d_ttl, double)
diff --git a/bin/varnishtest/tests/b00016.vtc b/bin/varnishtest/tests/b00016.vtc
index fc2478e..f4763ee 100644
--- a/bin/varnishtest/tests/b00016.vtc
+++ b/bin/varnishtest/tests/b00016.vtc
@@ -1,74 +1,42 @@
varnishtest "Check naming of backends"
-varnish v1 -vcl {
- backend foo {
- .host = "${bad_ip}"; .port = "9080";
- }
+server s1 {
+ rxreq
+ txresp
+} -start
- sub vcl_recv {
- return(error(200,"ok"));
- }
+varnish v1 -vcl+backend {
- sub vcl_error {
- set obj.http.X-Backend-Name = req.backend;
+ sub vcl_backend_response {
+ set beresp.http.X-Backend-Name = bereq.backend;
}
} -start
client c1 {
txreq -url "/"
rxresp
- expect resp.http.X-Backend-Name == "foo"
+ expect resp.http.X-Backend-Name == "s1"
} -run
-varnish v1 -vcl {
+varnish v1 -vcl+backend {
import ${vmod_directors};
- backend b1 {
- .host = "${bad_ip}"; .port = "9080";
- }
sub vcl_init {
new bar = directors.random();
- bar.add_backend(b1, 1);
- }
-
- sub vcl_recv {
- set req.backend = bar.backend();
- return(error(200,"ok"));
- }
-
- sub vcl_error {
- set obj.http.X-Backend-Name = req.backend;
- }
-}
-
-client c1 {
- txreq -url "/"
- rxresp
- expect resp.http.X-Backend-Name == "bar"
-} -run
-
-varnish v1 -vcl {
- import ${vmod_directors};
- backend b1 {
- .host = "${bad_ip}"; .port = "9080";
- }
- sub vcl_init {
- new baz = directors.round_robin();
- baz.add_backend(b1);
+ bar.add_backend(s1, 1);
}
sub vcl_recv {
- set req.backend = baz.backend();
- return (error(200,"ok"));
+ set req.backend_hint = bar.backend();
}
- sub vcl_error {
- set obj.http.X-Backend-Name = req.backend;
+ sub vcl_backend_response {
+ set beresp.http.X-Backend-Name = bereq.backend;
}
}
client c1 {
txreq -url "/"
rxresp
- expect resp.http.X-Backend-Name == "baz"
+ expect resp.http.X-Backend-Name == "s1"
} -run
diff --git a/bin/varnishtest/tests/c00044.vtc b/bin/varnishtest/tests/c00044.vtc
index fb415eb..9bd7950 100644
--- a/bin/varnishtest/tests/c00044.vtc
+++ b/bin/varnishtest/tests/c00044.vtc
@@ -24,7 +24,7 @@ varnish v1 \
-vcl+backend {
sub vcl_backend_response {
set beresp.do_stream = false;
- set beresp.storage = "invalid";
+ set beresp.storage_hint = "invalid";
}
} -start
diff --git a/bin/varnishtest/tests/c00045.vtc b/bin/varnishtest/tests/c00045.vtc
index 23967fa..c653cf0 100644
--- a/bin/varnishtest/tests/c00045.vtc
+++ b/bin/varnishtest/tests/c00045.vtc
@@ -16,7 +16,7 @@ varnish v1 \
-vcl+backend {
sub vcl_backend_response {
set beresp.do_stream = false;
- set beresp.storage = "s0";
+ set beresp.storage_hint = "s0";
}
} -start
diff --git a/bin/varnishtest/tests/c00046.vtc b/bin/varnishtest/tests/c00046.vtc
index a2e1d2b..3abea2f 100644
--- a/bin/varnishtest/tests/c00046.vtc
+++ b/bin/varnishtest/tests/c00046.vtc
@@ -15,7 +15,7 @@ varnish v1 \
-arg "-smalloc,1m" \
-vcl+backend {
sub vcl_backend_response {
- set beresp.storage = "s0";
+ set beresp.storage_hint = "s0";
}
} -start
diff --git a/bin/varnishtest/tests/p00008.vtc b/bin/varnishtest/tests/p00008.vtc
index 411c4b4..b839a0c 100644
--- a/bin/varnishtest/tests/p00008.vtc
+++ b/bin/varnishtest/tests/p00008.vtc
@@ -20,9 +20,9 @@ varnish v1 \
-arg "-sper2=persistent,${tmpdir}/_.per2,10m" \
-vcl+backend {
sub vcl_backend_response {
- set beresp.storage = "per1";
+ set beresp.storage_hint = "per1";
if (bereq.url ~ "silo2") {
- set beresp.storage = "per2";
+ set beresp.storage_hint = "per2";
}
}
} -start
diff --git a/bin/varnishtest/tests/r01175.vtc b/bin/varnishtest/tests/r01175.vtc
index 5539b20..5624c20 100644
--- a/bin/varnishtest/tests/r01175.vtc
+++ b/bin/varnishtest/tests/r01175.vtc
@@ -7,7 +7,7 @@ server s1 {
varnish v1 -arg "-s test=malloc,1M" -vcl+backend {
sub vcl_backend_response {
- set beresp.storage = "test";
+ set beresp.storage_hint = "test";
set beresp.do_stream = false;
}
} -start
diff --git a/bin/varnishtest/tests/r01283.vtc b/bin/varnishtest/tests/r01283.vtc
index 015b2fa..9b843ce 100644
--- a/bin/varnishtest/tests/r01283.vtc
+++ b/bin/varnishtest/tests/r01283.vtc
@@ -16,7 +16,7 @@ varnish v1 \
}
sub vcl_backend_response {
set beresp.do_stream = false;
- set beresp.storage = "Transient";
+ set beresp.storage_hint = "Transient";
}
} -start
diff --git a/bin/varnishtest/tests/r01284.vtc b/bin/varnishtest/tests/r01284.vtc
index 68dc456..697f104 100644
--- a/bin/varnishtest/tests/r01284.vtc
+++ b/bin/varnishtest/tests/r01284.vtc
@@ -15,7 +15,7 @@ varnish v1 \
-vcl+backend {
sub vcl_backend_response {
set beresp.do_stream = false;
- set beresp.storage = "Transient";
+ set beresp.storage_hint = "Transient";
}
} -start
diff --git a/bin/varnishtest/tests/v00033.vtc b/bin/varnishtest/tests/v00033.vtc
index d3eecc3..a10fac1 100644
--- a/bin/varnishtest/tests/v00033.vtc
+++ b/bin/varnishtest/tests/v00033.vtc
@@ -15,7 +15,7 @@ varnish v1 -vcl+backend {
storage.nowhere.free_space +
1 B + 1 KB + 1 MB + 1GB + 1TB;
if (bereq.url == "/foo") {
- set beresp.storage = "Transient";
+ set beresp.storage_hint = "Transient";
}
}
sub vcl_deliver {
diff --git a/lib/libvcc/generate.py b/lib/libvcc/generate.py
index a36c2d4..8d8f14f 100755
--- a/lib/libvcc/generate.py
+++ b/lib/libvcc/generate.py
@@ -253,11 +253,13 @@ The client's IP address.
Does the client accept the gzip transfer encoding.
"""
),
- ('req.backend',
+ ('req.backend_hint',
'BACKEND',
- ( 'client',),
- ( 'client',), """
- The backend to use to service the request.
+ ( 'recv',),
+ ( 'recv',), """
+ Set bereq.backend to this if we attemt to fetch.
+ This variable is a convenience so the overall
+ policy can be set up once and for all in vcl_recv{}.
"""
),
('req.hash_ignore_busy',
@@ -455,11 +457,11 @@ The client's IP address.
IP of the backend this response was fetched from.
"""
),
- ('beresp.storage',
+ ('beresp.storage_hint',
'STRING',
( 'backend_response',),
( 'backend_response',), """
- Set to force Varnish to save this object to a
+ Hint to Varnish that you want to save this object to a
particular storage backend.
"""
),
More information about the varnish-commit
mailing list