]> err.no Git - varnish/commitdiff
Add vcl_discard{} method, which can return discard or pass actions.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 25 Jun 2007 06:14:40 +0000 (06:14 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 25 Jun 2007 06:14:40 +0000 (06:14 +0000)
This is for DES' work on LRU list.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1548 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/mgt_vcc.c
varnish-cache/include/vcl.h
varnish-cache/include/vcl_returns.h
varnish-cache/lib/libvcl/vcc_fixed_token.c
varnish-cache/lib/libvcl/vcc_gen_fixed_token.tcl

index c56c2e8c2b0add929a072f0f8509313018b101cb..6563b50322afe4b4b427f1f0c4cbb2a274c78aaa 100644 (file)
@@ -127,6 +127,9 @@ static const char *default_vcl =
     "    }\n"
     "    insert;\n"
     "}\n"
+    "sub vcl_discard {\n"
+    "    discard;\n"
+    "}\n"
     "sub vcl_timeout {\n"
     "    discard;\n"
     "}\n";
index c678a7f090ec23a9cedd10c0868a72d9aa370219..af7f75d0e4ecdd1e2b5c6686ccd4c0a265c27bcf 100644 (file)
@@ -39,4 +39,5 @@ struct VCL_conf {
        vcl_func_f      *hit_func;
        vcl_func_f      *fetch_func;
        vcl_func_f      *timeout_func;
+       vcl_func_f      *discard_func;
 };
index b3b057dd565a5de4ed7f6255c6c946c2b0783f29..6bc0e6069a054b6f064a24a40f6a9f39a6b31bf2 100644 (file)
@@ -40,5 +40,6 @@ VCL_MET_MAC(miss,MISS,(VCL_RET_ERROR|VCL_RET_PASS|VCL_RET_FETCH))
 VCL_MET_MAC(hit,HIT,(VCL_RET_ERROR|VCL_RET_PASS|VCL_RET_DELIVER))
 VCL_MET_MAC(fetch,FETCH,(VCL_RET_ERROR|VCL_RET_PASS|VCL_RET_INSERT))
 VCL_MET_MAC(timeout,TIMEOUT,(VCL_RET_FETCH|VCL_RET_DISCARD))
+VCL_MET_MAC(discard,DISCARD,(VCL_RET_DISCARD|VCL_RET_PASS))
 #endif
-#define N_METHODS 8
+#define N_METHODS 9
index d91fda3d5bb49928662a2a5525fe889c2713ca85..2aa224c2467cafe8c77d2a29c6e712b93098174d 100644 (file)
@@ -350,6 +350,7 @@ vcl_output_lang_h(struct vsb *sb)
        vsb_cat(sb, "   vcl_func_f      *hit_func;\n");
        vsb_cat(sb, "   vcl_func_f      *fetch_func;\n");
        vsb_cat(sb, "   vcl_func_f      *timeout_func;\n");
+       vsb_cat(sb, "   vcl_func_f      *discard_func;\n");
        vsb_cat(sb, "};\n");
        vsb_cat(sb, "/*-\n");
        vsb_cat(sb, " * Copyright (c) 2006 Verdens Gang AS\n");
@@ -470,10 +471,12 @@ vcl_output_lang_h(struct vsb *sb)
        vsb_cat(sb, "void VRT_l_req_proto(struct sess *, const char *);\n");
        vsb_cat(sb, "struct backend * VRT_r_req_backend(struct sess *);\n");
        vsb_cat(sb, "void VRT_l_req_backend(struct sess *, struct backend *);\n");
-       vsb_cat(sb, "double VRT_r_obj_valid(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_obj_valid(struct sess *, double);\n");
-       vsb_cat(sb, "double VRT_r_obj_cacheable(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_obj_cacheable(struct sess *, double);\n");
+       vsb_cat(sb, "const char * VRT_r_req_hash(struct sess *);\n");
+       vsb_cat(sb, "void VRT_l_req_hash(struct sess *, const char *);\n");
+       vsb_cat(sb, "unsigned VRT_r_obj_valid(struct sess *);\n");
+       vsb_cat(sb, "void VRT_l_obj_valid(struct sess *, unsigned);\n");
+       vsb_cat(sb, "unsigned VRT_r_obj_cacheable(struct sess *);\n");
+       vsb_cat(sb, "void VRT_l_obj_cacheable(struct sess *, unsigned);\n");
        vsb_cat(sb, "double VRT_r_obj_ttl(struct sess *);\n");
        vsb_cat(sb, "void VRT_l_obj_ttl(struct sess *, double);\n");
        vsb_cat(sb, "const char * VRT_r_req_http_(struct sess *);\n");
index d956dda19bfcb97f7f4c3798bbd7539ad75b20c7..2ec2fa823d4478533d8bdd434f4c17e4ad022c1b 100755 (executable)
@@ -42,6 +42,7 @@ set methods {
        {hit            {error pass deliver}}
        {fetch          {error pass insert}}
        {timeout        {fetch discard}}
+       {discard        {discard pass}}
 }
 
 # These are the return actions