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);
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)
{
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);
+}
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);
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 },
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);