]> err.no Git - varnish/commitdiff
Add vcl_deliver() method where touch-up's to the returned reply can
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 2 Jul 2007 13:08:07 +0000 (13:08 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 2 Jul 2007 13:08:07 +0000 (13:08 +0000)
be performed.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1612 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 15d12059277b3e0d79ffe9b1354b424e3cfb88a8..e91d70f2d4abeb24ece143fa4d8d1025e2cbb12b 100644 (file)
@@ -127,6 +127,9 @@ static const char *default_vcl =
     "    }\n"
     "    insert;\n"
     "}\n"
+    "sub vcl_deliver {\n"
+    "    deliver;\n"
+    "}\n"
     "sub vcl_discard {\n"
     "    discard;\n"
     "}\n"
index af7f75d0e4ecdd1e2b5c6686ccd4c0a265c27bcf..881e6e96c4271a021495416d7efbd0e7c6940670 100644 (file)
@@ -38,6 +38,7 @@ struct VCL_conf {
        vcl_func_f      *miss_func;
        vcl_func_f      *hit_func;
        vcl_func_f      *fetch_func;
+       vcl_func_f      *deliver_func;
        vcl_func_f      *timeout_func;
        vcl_func_f      *discard_func;
 };
index 848ec6aceabce40b836b87753d9289f06e60618d..4f3f53a98b34f65741f60577287b8b7757e5dd96 100644 (file)
@@ -41,6 +41,7 @@ VCL_MET_MAC(hash,HASH,(VCL_RET_HASH))
 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(deliver,DELIVER,(VCL_RET_ERROR|VCL_RET_DELIVER))
 VCL_MET_MAC(timeout,TIMEOUT,(VCL_RET_FETCH|VCL_RET_DISCARD))
 VCL_MET_MAC(discard,DISCARD,(VCL_RET_DISCARD|VCL_RET_KEEP))
 #else
@@ -51,7 +52,8 @@ VCL_MET_MAC(discard,DISCARD,(VCL_RET_DISCARD|VCL_RET_KEEP))
 #define VCL_MET_MISS   (1 << 4)
 #define VCL_MET_HIT    (1 << 5)
 #define VCL_MET_FETCH  (1 << 6)
-#define VCL_MET_TIMEOUT        (1 << 7)
-#define VCL_MET_DISCARD        (1 << 8)
+#define VCL_MET_DELIVER        (1 << 7)
+#define VCL_MET_TIMEOUT        (1 << 8)
+#define VCL_MET_DISCARD        (1 << 9)
 #endif
-#define N_METHODS 9
+#define N_METHODS 10
index b144b98279decec423a98b6e47e3dcde6899a9fc..edad77f1b20ca32394bfa84bf0c9b5e24a50ddc4 100644 (file)
@@ -350,6 +350,7 @@ vcl_output_lang_h(struct vsb *sb)
        vsb_cat(sb, "   vcl_func_f      *miss_func;\n");
        vsb_cat(sb, "   vcl_func_f      *hit_func;\n");
        vsb_cat(sb, "   vcl_func_f      *fetch_func;\n");
+       vsb_cat(sb, "   vcl_func_f      *deliver_func;\n");
        vsb_cat(sb, "   vcl_func_f      *timeout_func;\n");
        vsb_cat(sb, "   vcl_func_f      *discard_func;\n");
        vsb_cat(sb, "};\n");
@@ -453,29 +454,17 @@ vcl_output_lang_h(struct vsb *sb)
        vsb_cat(sb, " * Edit vcc_gen_obj.tcl instead\n");
        vsb_cat(sb, " */\n");
        vsb_cat(sb, "\n");
-       vsb_cat(sb, "const char * VRT_r_backend_host(struct backend *);\n");
        vsb_cat(sb, "void VRT_l_backend_host(struct backend *, const char *);\n");
-       vsb_cat(sb, "const char * VRT_r_backend_port(struct backend *);\n");
        vsb_cat(sb, "void VRT_l_backend_port(struct backend *, const char *);\n");
-       vsb_cat(sb, "double VRT_r_backend_dnsttl(struct backend *);\n");
        vsb_cat(sb, "void VRT_l_backend_dnsttl(struct backend *, double);\n");
        vsb_cat(sb, "struct sockaddr * VRT_r_client_ip(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_client_ip(struct sess *, struct sockaddr *);\n");
        vsb_cat(sb, "struct sockaddr * VRT_r_server_ip(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_server_ip(struct sess *, struct sockaddr *);\n");
        vsb_cat(sb, "const char * VRT_r_req_request(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_req_request(struct sess *, const char *);\n");
-       vsb_cat(sb, "const char * VRT_r_req_host(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_req_host(struct sess *, const char *);\n");
        vsb_cat(sb, "const char * VRT_r_req_url(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_req_url(struct sess *, const char *);\n");
        vsb_cat(sb, "const char * VRT_r_req_proto(struct sess *);\n");
-       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, "const char * VRT_r_req_http_(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_req_http_(struct sess *, const char *);\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");
@@ -484,11 +473,7 @@ vcl_output_lang_h(struct vsb *sb)
        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_resp_proto(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_resp_proto(struct sess *, const char *);\n");
        vsb_cat(sb, "int VRT_r_resp_status(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_resp_status(struct sess *, int);\n");
        vsb_cat(sb, "const char * VRT_r_resp_response(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_resp_response(struct sess *, const char *);\n");
        vsb_cat(sb, "const char * VRT_r_resp_http_(struct sess *);\n");
-       vsb_cat(sb, "void VRT_l_resp_http_(struct sess *, const char *);\n");
 }
index 7657dd1a78a7a896005bce6132e6fe50cfe3748a..d2af8ea8feb9f73662630129b8d0f3a571331e5f 100755 (executable)
@@ -41,6 +41,7 @@ set methods {
        {miss           {error pass fetch}}
        {hit            {error pass deliver}}
        {fetch          {error pass insert}}
+       {deliver        {error deliver}}
        {timeout        {fetch discard}}
        {discard        {discard keep}}
 }