Hi,

Here is a patch proposal in order to make "done" function available in VCL. It 
adds a "sub vcl_done" in VCL, which is called at beginning of cnt_done 
function. It allows to call a VMOD at the end of a request, whatever the status 
is (success, fail, timeout, etc.).

Tested on 3.0.5.

Best regards,
Thierry

diff -r 8f2ba576d90c bin/varnishd/cache_center.c
--- a/bin/varnishd/cache_center.c       Thu Mar 06 11:31:03 2014 +0100
+++ b/bin/varnishd/cache_center.c       Thu Mar 06 11:31:09 2014 +0100
@@ -311,6 +311,8 @@
        CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
        CHECK_OBJ_ORNULL(sp->vcl, VCL_CONF_MAGIC);
 
+       VCL_done_method(sp);
+
        AZ(sp->obj);
        AZ(sp->vbc);
        sp->director = NULL;
diff -r 8f2ba576d90c lib/libvcl/generate.py
--- a/lib/libvcl/generate.py    Thu Mar 06 11:31:03 2014 +0100
+++ b/lib/libvcl/generate.py    Thu Mar 06 11:31:09 2014 +0100
@@ -92,6 +92,7 @@
        ('fetch',       ('error', 'restart', 'hit_for_pass', 'deliver',)),
        ('deliver',     ('restart', 'deliver',)),
        ('error',       ('restart', 'deliver',)),
+       ('done',        ('ok',)),
        ('init',        ('ok',)),
        ('fini',        ('ok',)),
 )



_______________________________________________
varnish-dev mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Reply via email to