[master] 93112f3 Isolate more knowledge about the internals of a VCL in cache_vcl.c
Poul-Henning Kamp
phk at FreeBSD.org
Wed Jun 17 11:39:04 CEST 2015
commit 93112f34d060afbb290541c699c2cd86214d8708
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Jun 17 08:44:18 2015 +0000
Isolate more knowledge about the internals of a VCL in cache_vcl.c
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 3492ae5..042e176 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -1071,6 +1071,7 @@ void VCL_Refresh(struct VCL_conf **vcc);
void VCL_Ref(struct VCL_conf *vcc);
void VCL_Rel(struct VCL_conf **vcc);
void VCL_Poll(void);
+struct director *VCL_DefaultDirector(const struct VCL_conf *);
const char *VCL_Return_Name(unsigned);
const char *VCL_Method_Name(unsigned);
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index c4d3ab4..5ce8309 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -107,7 +107,7 @@ cnt_deliver(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
CHECK_OBJ_NOTNULL(req->objcore, OBJCORE_MAGIC);
CHECK_OBJ_NOTNULL(req->objcore->objhead, OBJHEAD_MAGIC);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
assert(req->objcore->refcnt > 0);
@@ -337,7 +337,7 @@ cnt_lookup(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
AZ(req->objcore);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
VRY_Prep(req);
@@ -469,7 +469,7 @@ cnt_miss(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
CHECK_OBJ_NOTNULL(req->objcore, OBJCORE_MAGIC);
VCL_miss_method(req->vcl, wrk, req, NULL, NULL);
@@ -510,7 +510,7 @@ cnt_pass(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
AZ(req->objcore);
VCL_pass_method(req->vcl, wrk, req, NULL, NULL);
@@ -545,7 +545,7 @@ cnt_pipe(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
wrk->stats->s_pipe++;
bo = VBO_GetBusyObj(wrk, req);
@@ -618,7 +618,7 @@ cnt_recv(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
AZ(req->objcore);
AZ(req->err_code);
@@ -649,7 +649,7 @@ cnt_recv(struct worker *wrk, struct req *req)
/* By default we use the first backend */
AZ(req->director_hint);
- req->director_hint = *req->vcl->default_director;
+ req->director_hint = VCL_DefaultDirector(req->vcl);
AN(req->director_hint);
req->d_ttl = -1;
@@ -735,7 +735,7 @@ cnt_purge(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
AZ(req->objcore);
- CHECK_OBJ_NOTNULL(req->vcl, VCL_CONF_MAGIC);
+ AN(req->vcl);
VRY_Prep(req);
diff --git a/bin/varnishd/cache/cache_vcl.c b/bin/varnishd/cache/cache_vcl.c
index db5aa2d..e45f186 100644
--- a/bin/varnishd/cache/cache_vcl.c
+++ b/bin/varnishd/cache/cache_vcl.c
@@ -245,6 +245,16 @@ VCL_TestLoad(const char *fn)
/*--------------------------------------------------------------------*/
+struct director *
+VCL_DefaultDirector(const struct VCL_conf *vcc)
+{
+
+ AN(vcc);
+ return (*vcc->default_director);
+}
+
+/*--------------------------------------------------------------------*/
+
static struct vcl *
vcl_find(const char *name)
{
More information about the varnish-commit
mailing list