[master] c4102bc Add two new VCL events, WARM and COLD. Regularize the names in the generated code. Pass VCL events to backends.
Poul-Henning Kamp
phk at FreeBSD.org
Sat Mar 7 14:32:39 CET 2015
commit c4102bcfd459165a8658d091408055327d2cb24f
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Sat Mar 7 10:04:35 2015 +0000
Add two new VCL events, WARM and COLD.
Regularize the names in the generated code.
Pass VCL events to backends.
diff --git a/bin/varnishd/cache/cache_backend.c b/bin/varnishd/cache/cache_backend.c
index 91a8939..0785792 100644
--- a/bin/varnishd/cache/cache_backend.c
+++ b/bin/varnishd/cache/cache_backend.c
@@ -319,7 +319,8 @@ VRT_init_vbe(VRT_CTX, struct director **dp, const struct vrt_backend *vrt)
}
void
-VRT_use_vbe(VRT_CTX, const struct director *d, const struct vrt_backend *vrt)
+VRT_event_vbe(VRT_CTX, enum vcl_event_e ev, const struct director *d,
+ const struct vrt_backend *vrt)
{
struct backend *be;
@@ -334,7 +335,8 @@ VRT_use_vbe(VRT_CTX, const struct director *d, const struct vrt_backend *vrt)
if (vrt->probe == NULL)
return;
- VBP_Use(be, vrt->probe);
+ if (ev == VCL_EVENT_USE)
+ VBP_Use(be, vrt->probe);
}
void
diff --git a/include/vrt.h b/include/vrt.h
index d5a579c..60a0f14 100644
--- a/include/vrt.h
+++ b/include/vrt.h
@@ -233,7 +233,10 @@ void VRT_synth_page(VRT_CTX, const char *, ...);
/* Backend related */
void VRT_init_vbe(VRT_CTX, struct director **, const struct vrt_backend *);
-void VRT_use_vbe(VRT_CTX, const struct director *, const struct vrt_backend *);
+#ifdef VCL_RET_MAX
+void VRT_event_vbe(VRT_CTX, enum vcl_event_e, const struct director *,
+ const struct vrt_backend *);
+#endif
void VRT_fini_vbe(VRT_CTX, struct director **, const struct vrt_backend *);
/* Suckaddr related */
diff --git a/lib/libvcc/generate.py b/lib/libvcc/generate.py
index c3b9a13..448cec8 100755
--- a/lib/libvcc/generate.py
+++ b/lib/libvcc/generate.py
@@ -947,7 +947,9 @@ struct worker;
enum vcl_event_e {
VCL_EVENT_LOAD,
+ VCL_EVENT_WARM,
VCL_EVENT_USE,
+ VCL_EVENT_COLD,
VCL_EVENT_DISCARD,
};
diff --git a/lib/libvcc/vcc_backend.c b/lib/libvcc/vcc_backend.c
index 6402994..29444a6 100644
--- a/lib/libvcc/vcc_backend.c
+++ b/lib/libvcc/vcc_backend.c
@@ -434,8 +434,7 @@ vcc_ParseHostDef(struct vcc *tl, const struct token *t_be)
"\tVRT_fini_vbe(ctx, &VGCDIR(%s), &vgc_dir_priv_%s);",
vgcname, vgcname);
VSB_printf(ifp->event,
- "\tif (ev == VCL_EVENT_USE)\n"
- "\t\tVRT_use_vbe(ctx, VGCDIR(%s), &vgc_dir_priv_%s);",
+ "\tVRT_event_vbe(ctx, ev, VGCDIR(%s), &vgc_dir_priv_%s);",
vgcname, vgcname);
tl->ndirector++;
}
diff --git a/lib/libvcc/vcc_compile.c b/lib/libvcc/vcc_compile.c
index 40c3772..f651ed7 100644
--- a/lib/libvcc/vcc_compile.c
+++ b/lib/libvcc/vcc_compile.c
@@ -312,7 +312,7 @@ EmitInitFini(const struct vcc *tl)
/*
* INIT
*/
- Fc(tl, 0, "\nstatic int\nVGC_Init(VRT_CTX)\n{\n\n");
+ Fc(tl, 0, "\nstatic int\nVGC_Load(VRT_CTX)\n{\n\n");
VTAILQ_FOREACH(p, &tl->inifin, list) {
AZ(VSB_finish(p->ini));
if (VSB_len(p->ini))
@@ -326,7 +326,7 @@ EmitInitFini(const struct vcc *tl)
/*
* FINI
*/
- Fc(tl, 0, "\nstatic int\nVGC_Fini(VRT_CTX)\n{\n\n");
+ Fc(tl, 0, "\nstatic int\nVGC_Discard(VRT_CTX)\n{\n\n");
VTAILQ_FOREACH_REVERSE(p, &tl->inifin, inifinhead, list) {
AZ(VSB_finish(p->fin));
@@ -345,9 +345,9 @@ EmitInitFini(const struct vcc *tl)
Fc(tl, 0, "VGC_Event(VRT_CTX, enum vcl_event_e ev)\n");
Fc(tl, 0, "{\n");
Fc(tl, 0, "\tif (ev == VCL_EVENT_LOAD)\n");
- Fc(tl, 0, "\t\treturn(VGC_Init(ctx));\n");
+ Fc(tl, 0, "\t\treturn(VGC_Load(ctx));\n");
Fc(tl, 0, "\tif (ev == VCL_EVENT_DISCARD)\n");
- Fc(tl, 0, "\t\treturn(VGC_Fini(ctx));\n");
+ Fc(tl, 0, "\t\treturn(VGC_Discard(ctx));\n");
Fc(tl, 0, "\t\n");
VTAILQ_FOREACH(p, &tl->inifin, list) {
AZ(VSB_finish(p->event));
More information about the varnish-commit
mailing list