]> err.no Git - varnish/commitdiff
Implement req.request properly
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 18 Jun 2006 10:10:45 +0000 (10:10 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 18 Jun 2006 10:10:45 +0000 (10:10 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@202 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_http.c
varnish-cache/bin/varnishd/cache_vcl.c
varnish-cache/include/vcl_lang.h
varnish-cache/lib/libvcl/vcl_compile.c
varnish-cache/lib/libvcl/vcl_fixed_token.c

index 10cfc696afca48cf12ad099624d3c6ead0a0cab5..68e66bb6280f17810fc7e8598ef6c8c97120aef8 100644 (file)
@@ -83,6 +83,7 @@ struct http *http_New(void);
 void http_Delete(struct http *hp);
 int http_GetHdr(struct http *hp, const char *hdr, char **ptr);
 int http_GetHdrField(struct http *hp, const char *hdr, const char *field, char **ptr);
+int http_GetReq(struct http *hp, char **b);
 int http_GetStatus(struct http *hp);
 int http_HdrIs(struct http *hp, const char *hdr, const char *val);
 int http_GetTail(struct http *hp, unsigned len, char **b, char **e);
index 35924c99ac41defa70465a6027b29380d98b87ef..25358edb843828fcd2f26697c56ed5aee59c0163 100644 (file)
@@ -147,6 +147,15 @@ http_HdrIs(struct http *hp, const char *hdr, const char *val)
        return (0);
 }
 
+int
+http_GetReq(struct http *hp, char **b)
+{
+       if (hp->req == NULL)
+               return (0);
+       *b = hp->req;
+       return (1);
+}
+
 int
 http_GetURL(struct http *hp, char **b)
 {
index 8d96b534bb8834acd492bd979e38350aa08905d1..8d710bb677d65ccc1cd641e8e2cbf33409d961dc 100644 (file)
@@ -273,3 +273,14 @@ VCL_GetHdr(VCL_FARGS, const char *n)
                return (NULL);
        return (p);
 }
+
+char *
+VCL_GetReq(VCL_FARGS)
+{
+       char *p;
+
+       assert(sess != NULL);
+       assert(sess->http != NULL);
+       assert(http_GetReq(sess->http, &p));
+       return (p);
+}
index 5242ce7e2b5b73dc84de1a2ad8ef872fbe83129f..10c786e772098a49ad3d433dc1cb7cd668b85345 100644 (file)
@@ -101,6 +101,7 @@ void VCL_error(VCL_FARGS, unsigned, const char *);
 int VCL_switch_config(const char *);
 
 char *VCL_GetHdr(VCL_FARGS, const char *);
+char *VCL_GetReq(VCL_FARGS);
 
 typedef void vcl_init_f(void);
 typedef void vcl_func_f(VCL_FARGS);
index febd4e4a8e3094c8b43bee3ea6a37cd402984b00..f1c734345549d58a2c1232db10302f03032a84c2 100644 (file)
@@ -122,7 +122,7 @@ static struct var be_vars[] = {
 
 
 static struct var vars[] = {
-       { "req.request",                STRING,   0,  "\"GET\""      },
+       { "req.request",                STRING,   0,  "VCL_GetReq(VCL_PASS_ARGS)"            },
        { "obj.valid",                  BOOL,     0,  "sess->obj->valid"     },
        { "obj.cacheable",              BOOL,     0,  "sess->obj->cacheable" },
        { "req.http.",                  HEADER,   0,  NULL },
index e677105cc90aba0ba0fb56dfd05417710ed4212f..20ace6984768a313c4210b91efc1725f4395f49f 100644 (file)
@@ -500,6 +500,7 @@ vcl_output_lang_h(FILE *f)
        fputs("int VCL_switch_config(const char *);\n", f);
        fputs("\n", f);
        fputs("char *VCL_GetHdr(VCL_FARGS, const char *);\n", f);
+       fputs("char *VCL_GetReq(VCL_FARGS);\n", f);
        fputs("\n", f);
        fputs("typedef void vcl_init_f(void);\n", f);
        fputs("typedef void vcl_func_f(VCL_FARGS);\n", f);