[master] b3e1e10 Replace the remaining instances of the the "req" argument in VCL/VRT/VMOD with vrt_ctx arguments.
Poul-Henning Kamp
phk at varnish-cache.org
Wed May 1 10:07:05 CEST 2013
commit b3e1e1003fba0bcd7d8534290e940e37963bdb45
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed May 1 08:06:28 2013 +0000
Replace the remaining instances of the the "req" argument in VCL/VRT/VMOD
with vrt_ctx arguments.
diff --git a/bin/varnishd/cache/cache_vcl.c b/bin/varnishd/cache/cache_vcl.c
index aa2aec7..3875326 100644
--- a/bin/varnishd/cache/cache_vcl.c
+++ b/bin/varnishd/cache/cache_vcl.c
@@ -220,7 +220,7 @@ VCL_Load(const char *fn, const char *name, struct cli *cli)
REPLACE(vcl->name, name);
VCLI_Out(cli, "Loaded \"%s\" as \"%s\"", fn , name);
VTAILQ_INSERT_TAIL(&vcl_head, vcl, list);
- (void)vcl->conf->init_func(&ctx, NULL, NULL);
+ (void)vcl->conf->init_func(&ctx, NULL);
Lck_Lock(&vcl_mtx);
if (vcl_active == NULL)
vcl_active = vcl;
@@ -247,7 +247,7 @@ VCL_Nuke(struct vcls *vcl)
assert(vcl->conf->discard);
assert(vcl->conf->busy == 0);
VTAILQ_REMOVE(&vcl_head, vcl, list);
- (void)vcl->conf->fini_func(&ctx, NULL, NULL);
+ (void)vcl->conf->fini_func(&ctx, NULL);
vcl->conf->fini_vcl(NULL);
free(vcl->name);
(void)dlclose(vcl->dlh);
@@ -421,7 +421,7 @@ vcl_call_method(struct worker *wrk, struct req *req, struct busyobj *bo,
wrk->cur_method = method;
AN(vsl);
VSLb(vsl, SLT_VCL_call, "%s", VCL_Method_Name(method));
- (void)func(&ctx, wrk, req);
+ (void)func(&ctx, wrk);
VSLb(vsl, SLT_VCL_return, "%s", VCL_Return_Name(wrk->handling));
wrk->cur_method = 0;
WS_Reset(wrk->aws, aws);
diff --git a/bin/varnishd/cache/cache_vrt.c b/bin/varnishd/cache/cache_vrt.c
index 0d9af43..4c44959 100644
--- a/bin/varnishd/cache/cache_vrt.c
+++ b/bin/varnishd/cache/cache_vrt.c
@@ -55,12 +55,14 @@ const void * const vrt_magic_string_unset = &vrt_magic_string_unset;
/*--------------------------------------------------------------------*/
const struct gethdr_s *
-VRT_MkGethdr(struct req *req, enum gethdr_e where, const char *what)
+VRT_MkGethdr(const struct vrt_ctx *ctx, enum gethdr_e where, const char *what)
{
struct gethdr_s *retval;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- retval = (void*)WS_Alloc(req->wrk->aws, sizeof *retval);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ // XXX ?
+ retval = (void*)WS_Alloc(ctx->req->wrk->aws, sizeof *retval);
AN(retval);
retval->where = where;
retval->what = what;
@@ -71,16 +73,18 @@ VRT_MkGethdr(struct req *req, enum gethdr_e where, const char *what)
/*--------------------------------------------------------------------*/
void
-VRT_error(struct req *req, unsigned code, const char *reason)
+VRT_error(const struct vrt_ctx *ctx, unsigned code, const char *reason)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- VSLb(req->vsl, SLT_Debug, "VCL_error(%u, %s)", code,
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ VSLb(ctx->vsl, SLT_Debug, "VCL_error(%u, %s)", code,
reason ? reason : "(null)");
if (code < 100 || code > 999)
code = 503;
- req->err_code = (uint16_t)code;
- req->err_reason = reason ? reason : http_StatusMessage(req->err_code);
+ ctx->req->err_code = (uint16_t)code;
+ ctx->req->err_reason =
+ reason ? reason : http_StatusMessage(ctx->req->err_code);
}
/*--------------------------------------------------------------------*/
@@ -277,18 +281,20 @@ VRT_handling(struct worker *wrk, unsigned hand)
*/
void
-VRT_hashdata(struct req *req, const char *str, ...)
+VRT_hashdata(const struct vrt_ctx *ctx, const char *str, ...)
{
va_list ap;
const char *p;
- HSH_AddString(req, str);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ HSH_AddString(ctx->req, str);
va_start(ap, str);
while (1) {
p = va_arg(ap, const char *);
if (p == vrt_magic_string_end)
break;
- HSH_AddString(req, p);
+ HSH_AddString(ctx->req, p);
}
}
@@ -405,27 +411,29 @@ VRT_l_beresp_saintmode(const struct vrt_ctx *ctx, double a)
/*--------------------------------------------------------------------*/
void
-VRT_Rollback(struct req *req)
+VRT_Rollback(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- HTTP_Copy(req->http, req->http0);
- WS_Reset(req->ws, req->ws_req);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ HTTP_Copy(ctx->req->http, ctx->req->http0);
+ WS_Reset(ctx->req->ws, ctx->req->ws_req);
}
/*--------------------------------------------------------------------*/
void
-VRT_synth_page(const struct req *req, unsigned flags, const char *str, ...)
+VRT_synth_page(const struct vrt_ctx *ctx, unsigned flags, const char *str, ...)
{
va_list ap;
const char *p;
struct vsb *vsb;
(void)flags;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->obj, OBJECT_MAGIC);
- vsb = SMS_Makesynth(req->obj);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req->obj, OBJECT_MAGIC);
+ vsb = SMS_Makesynth(ctx->req->obj);
AN(vsb);
VSB_cat(vsb, str);
@@ -438,9 +446,10 @@ VRT_synth_page(const struct req *req, unsigned flags, const char *str, ...)
p = va_arg(ap, const char *);
}
va_end(ap);
- SMS_Finish(req->obj);
- http_Unset(req->obj->http, H_Content_Length);
- http_PrintfHeader(req->obj->http, "Content-Length: %zd", req->obj->len);
+ SMS_Finish(ctx->req->obj);
+ http_Unset(ctx->req->obj->http, H_Content_Length);
+ http_PrintfHeader(ctx->req->obj->http,
+ "Content-Length: %zd", ctx->req->obj->len);
}
/*--------------------------------------------------------------------*/
@@ -494,9 +503,12 @@ VRT_ban_string(const char *str)
*/
int
-VRT_CacheReqBody(struct req *req, long long maxsize)
+VRT_CacheReqBody(const struct vrt_ctx *ctx, long long maxsize)
{
- return (HTTP1_CacheReqBody(req, maxsize));
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return (HTTP1_CacheReqBody(ctx->req, maxsize));
}
/*--------------------------------------------------------------------
@@ -504,15 +516,19 @@ VRT_CacheReqBody(struct req *req, long long maxsize)
*/
void
-VRT_purge(const struct worker *wrk, struct req *req, double ttl, double grace)
+VRT_purge(const struct worker *wrk, const struct vrt_ctx *ctx, double ttl,
+ double grace)
{
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
if (wrk->cur_method == VCL_MET_LOOKUP)
- HSH_Purge(req, req->obj->objcore->objhead, ttl, grace);
+ HSH_Purge(ctx->req, ctx->req->obj->objcore->objhead,
+ ttl, grace);
else if (wrk->cur_method == VCL_MET_MISS)
- HSH_Purge(req, req->objcore->objhead, ttl, grace);
+ HSH_Purge(ctx->req, ctx->req->objcore->objhead,
+ ttl, grace);
}
/*--------------------------------------------------------------------
diff --git a/bin/varnishd/cache/cache_vrt_re.c b/bin/varnishd/cache/cache_vrt_re.c
index e4b9750..856a057 100644
--- a/bin/varnishd/cache/cache_vrt_re.c
+++ b/bin/varnishd/cache/cache_vrt_re.c
@@ -62,12 +62,12 @@ VRT_re_fini(void *rep)
}
int
-VRT_re_match(struct req *req, const char *s, void *re)
+VRT_re_match(const struct vrt_ctx *ctx, const char *s, void *re)
{
vre_t *t;
int i;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (s == NULL)
s = "";
AN(re);
@@ -76,12 +76,12 @@ VRT_re_match(struct req *req, const char *s, void *re)
if (i >= 0)
return (1);
if (i < VRE_ERROR_NOMATCH )
- VSLb(req->vsl, SLT_VCL_Error, "Regexp matching returned %d", i);
+ VSLb(ctx->vsl, SLT_VCL_Error, "Regexp matching returned %d", i);
return (0);
}
const char *
-VRT_regsub(struct req *req, int all, const char *str, void *re,
+VRT_regsub(const struct vrt_ctx *ctx, int all, const char *str, void *re,
const char *sub)
{
int ovector[30];
@@ -94,7 +94,7 @@ VRT_regsub(struct req *req, int all, const char *str, void *re,
int options = 0;
size_t len;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(re);
if (str == NULL)
str = "";
@@ -110,12 +110,12 @@ VRT_regsub(struct req *req, int all, const char *str, void *re,
if (i == VRE_ERROR_NOMATCH)
return(str);
if (i < VRE_ERROR_NOMATCH ) {
- VSLb(req->vsl, SLT_VCL_Error, "Regexp matching returned %d", i);
+ VSLb(ctx->vsl, SLT_VCL_Error, "Regexp matching returned %d", i);
return(str);
}
- u = WS_Reserve(req->http->ws, 0);
- res.e = res.b = b0 = req->http->ws->f;
+ u = WS_Reserve(ctx->ws, 0);
+ res.e = res.b = b0 = ctx->ws->f;
res.e += u;
do {
@@ -147,8 +147,8 @@ VRT_regsub(struct req *req, int all, const char *str, void *re,
i = VRE_exec(t, str, len, 0, options, ovector, 30,
&cache_param->vre_limits);
if (i < VRE_ERROR_NOMATCH ) {
- WS_Release(req->http->ws, 0);
- VSLb(req->vsl, SLT_VCL_Error,
+ WS_Release(ctx->ws, 0);
+ VSLb(ctx->vsl, SLT_VCL_Error,
"Regexp matching returned %d", i);
return(str);
}
@@ -157,10 +157,10 @@ VRT_regsub(struct req *req, int all, const char *str, void *re,
/* Copy suffix to match */
Tadd(&res, str, len+1);
if (res.b >= res.e) {
- WS_Release(req->http->ws, 0);
+ WS_Release(ctx->ws, 0);
return (str);
}
Tcheck(res);
- WS_ReleaseP(req->http->ws, res.b);
+ WS_ReleaseP(ctx->ws, res.b);
return (b0);
}
diff --git a/bin/varnishtest/tests/c00033.vtc b/bin/varnishtest/tests/c00033.vtc
index f78b582..809387d 100644
--- a/bin/varnishtest/tests/c00033.vtc
+++ b/bin/varnishtest/tests/c00033.vtc
@@ -25,13 +25,13 @@ varnish v1 -vcl+backend {
sub vcl_lookup {
if (req.method == "PURGE") {
- C{ VRT_purge(wrk, req, 0, 0); }C
+ C{ VRT_purge(wrk, ctx, 0, 0); }C
error 456 "got it";
}
}
sub vcl_miss {
if (req.method == "PURGE") {
- C{ VRT_purge(wrk, req, 0, 0); }C
+ C{ VRT_purge(wrk, ctx, 0, 0); }C
error 456 "got it";
}
}
diff --git a/bin/varnishtest/tests/c00055.vtc b/bin/varnishtest/tests/c00055.vtc
index b7c93a4..5bc57f2 100644
--- a/bin/varnishtest/tests/c00055.vtc
+++ b/bin/varnishtest/tests/c00055.vtc
@@ -12,7 +12,7 @@ server s1 {
varnish v1 -vcl+backend {
sub vcl_recv {
- C{ VRT_CacheReqBody(req, 1000); }C
+ C{ VRT_CacheReqBody(ctx, 1000); }C
return (pass);
}
sub vcl_backend_response {
diff --git a/include/vrt.h b/include/vrt.h
index 031a9e1..063cf9a 100644
--- a/include/vrt.h
+++ b/include/vrt.h
@@ -186,38 +186,40 @@ void VRT_acl_log(const struct vrt_ctx *, const char *msg);
/* req related */
-int VRT_CacheReqBody(struct req *, long long maxsize);
+int VRT_CacheReqBody(const struct vrt_ctx *, long long maxsize);
/* Regexp related */
void VRT_re_init(void **, const char *);
void VRT_re_fini(void *);
-int VRT_re_match(struct req *, const char *, void *re);
-const char *VRT_regsub(struct req *, int all, const char *,
+int VRT_re_match(const struct vrt_ctx *, const char *, void *re);
+const char *VRT_regsub(const struct vrt_ctx *, int all, const char *,
void *, const char *);
void VRT_ban_string(const char *);
-void VRT_purge(const struct worker *, struct req *, double ttl, double grace);
+void VRT_purge(const struct worker *, const struct vrt_ctx *, double ttl,
+ double grace);
void VRT_count(const struct vrt_ctx *, unsigned);
int VRT_rewrite(const char *, const char *);
-void VRT_error(struct req *, unsigned, const char *);
+void VRT_error(const struct vrt_ctx *, unsigned, const char *);
int VRT_switch_config(const char *);
-const struct gethdr_s *VRT_MkGethdr(struct req *,enum gethdr_e, const char *);
+const struct gethdr_s *VRT_MkGethdr(const struct vrt_ctx *,enum gethdr_e,
+ const char *);
char *VRT_GetHdr(const struct vrt_ctx *, const struct gethdr_s *);
void VRT_SetHdr(const struct vrt_ctx *, const struct gethdr_s *, const char *, ...);
void VRT_handling(struct worker *, unsigned hand);
-void VRT_hashdata(struct req *, const char *str, ...);
+void VRT_hashdata(const struct vrt_ctx *, const char *str, ...);
/* Simple stuff */
int VRT_strcmp(const char *s1, const char *s2);
void VRT_memmove(void *dst, const void *src, unsigned len);
-void VRT_Rollback(struct req *);
+void VRT_Rollback(const struct vrt_ctx *);
/* Synthetic pages */
-void VRT_synth_page(const struct req *, unsigned flags, const char *, ...);
+void VRT_synth_page(const struct vrt_ctx *, unsigned flags, const char *, ...);
/* Backend related */
void VRT_init_dir(struct cli *, struct director **, const char *name,
diff --git a/lib/libvcl/generate.py b/lib/libvcl/generate.py
index 254a3cc..509141f 100755
--- a/lib/libvcl/generate.py
+++ b/lib/libvcl/generate.py
@@ -698,7 +698,6 @@ fo = open(buildroot + "/include/vcl.h", "w")
file_header(fo)
fo.write("""
-struct sess;
struct vrt_ctx;
struct req;
struct busyobj;
@@ -708,7 +707,7 @@ struct worker;
typedef int vcl_init_f(struct cli *);
typedef void vcl_fini_f(struct cli *);
-typedef int vcl_func_f(const struct vrt_ctx *ctx, struct worker *, struct req *);
+typedef int vcl_func_f(const struct vrt_ctx *ctx, struct worker *);
""")
diff --git a/lib/libvcl/vcc_action.c b/lib/libvcl/vcc_action.c
index 217aee4..a5bd769 100644
--- a/lib/libvcl/vcc_action.c
+++ b/lib/libvcl/vcc_action.c
@@ -46,7 +46,7 @@ parse_call(struct vcc *tl)
ExpectErr(tl, ID);
vcc_AddCall(tl, tl->t);
vcc_AddRef(tl, tl->t, SYM_SUB);
- Fb(tl, 1, "if (VGC_function_%.*s(ctx, req))\n", PF(tl->t));
+ Fb(tl, 1, "if (VGC_function_%.*s(ctx))\n", PF(tl->t));
Fb(tl, 1, "\treturn (1);\n");
vcc_NextToken(tl);
return;
@@ -59,7 +59,7 @@ parse_error(struct vcc *tl)
{
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_error(req,\n");
+ Fb(tl, 1, "VRT_error(ctx,\n");
if (tl->t->tok == '(') {
vcc_NextToken(tl);
vcc_Expr(tl, INT);
@@ -223,7 +223,7 @@ parse_new(struct vcc *tl)
bprintf(buf1, ", &%s, \"%s\"", sy1->name, sy1->name);
vcc_Eval_Func(tl, s_init, buf1, "ASDF", s_init + strlen(s_init) + 1);
- Fd(tl, 0, "\t%s((struct req*)0, &%s);\n", s_fini, sy1->name);
+ Fd(tl, 0, "\t%s(&%s);\n", s_fini, sy1->name);
ExpectErr(tl, ';');
bprintf(buf1, ", %s", sy1->name);
@@ -292,7 +292,7 @@ parse_hash_data(struct vcc *tl)
vcc_NextToken(tl);
SkipToken(tl, '(');
- Fb(tl, 1, "VRT_hashdata(req, ");
+ Fb(tl, 1, "VRT_hashdata(ctx, ");
vcc_Expr(tl, STRING_LIST);
ERRCHK(tl);
Fb(tl, 0, ");\n");
@@ -339,7 +339,7 @@ parse_rollback(struct vcc *tl)
{
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_Rollback(req);\n");
+ Fb(tl, 1, "VRT_Rollback(ctx);\n");
}
/*--------------------------------------------------------------------*/
@@ -349,7 +349,7 @@ parse_purge(struct vcc *tl)
{
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_purge(wrk, req, 0, 0);\n");
+ Fb(tl, 1, "VRT_purge(wrk, ctx, 0, 0);\n");
}
/*--------------------------------------------------------------------*/
@@ -359,7 +359,7 @@ parse_synthetic(struct vcc *tl)
{
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_synth_page(req, 0, ");
+ Fb(tl, 1, "VRT_synth_page(ctx, 0, ");
vcc_Expr(tl, STRING_LIST);
ERRCHK(tl);
Fb(tl, 0, ");\n");
diff --git a/lib/libvcl/vcc_compile.c b/lib/libvcl/vcc_compile.c
index bf992e2..a3de471 100644
--- a/lib/libvcl/vcc_compile.c
+++ b/lib/libvcl/vcc_compile.c
@@ -694,8 +694,7 @@ vcc_CompileSource(const struct vcc *tl0, struct vsb *sb, struct source *sp)
Fc(tl, 1, "\nstatic int __match_proto__(vcl_func_f)\n");
Fc(tl, 1,
"VGC_function_%s(const struct vrt_ctx *ctx,"
- " struct worker *wrk,"
- " struct req *req)\n",
+ " struct worker *wrk)\n",
method_tab[i].name);
AZ(VSB_finish(tl->fm[i]));
Fc(tl, 1, "{\n");
diff --git a/lib/libvcl/vcc_expr.c b/lib/libvcl/vcc_expr.c
index c318920..88d7ccb 100644
--- a/lib/libvcl/vcc_expr.c
+++ b/lib/libvcl/vcc_expr.c
@@ -459,7 +459,7 @@ vcc_Eval_Regsub(struct vcc *tl, struct expr **e, const struct symbol *sym)
p = vcc_regexp(tl);
vcc_NextToken(tl);
- bprintf(buf, "VRT_regsub(req, %d,\v+\n\v1,\n%s", all, p);
+ bprintf(buf, "VRT_regsub(ctx, %d,\v+\n\v1,\n%s", all, p);
*e = vcc_expr_edit(STRING, buf, e2, *e);
SkipToken(tl, ',');
@@ -535,7 +535,7 @@ vcc_func(struct vcc *tl, struct expr **e, const char *cfunc,
p = args;
if (extra == NULL)
extra = "";
- e2 = vcc_mk_expr(vcc_arg_type(&p), "%s(req%s\v+", cfunc, extra);
+ e2 = vcc_mk_expr(vcc_arg_type(&p), "%s(ctx%s\v+", cfunc, extra);
while (*p != '\0') {
e1 = NULL;
fmt = vcc_arg_type(&p);
@@ -1002,7 +1002,7 @@ vcc_expr_cmp(struct vcc *tl, struct expr **e, enum var_type fmt)
re = vcc_regexp(tl);
ERRCHK(tl);
vcc_NextToken(tl);
- bprintf(buf, "%sVRT_re_match(req, \v1, %s)", not, re);
+ bprintf(buf, "%sVRT_re_match(ctx, \v1, %s)", not, re);
*e = vcc_expr_edit(BOOL, buf, *e, NULL);
return;
}
diff --git a/lib/libvcl/vcc_parse.c b/lib/libvcl/vcc_parse.c
index 75e976f..ff70d64 100644
--- a/lib/libvcl/vcc_parse.c
+++ b/lib/libvcl/vcc_parse.c
@@ -237,10 +237,10 @@ vcc_Function(struct vcc *tl)
}
tl->curproc = vcc_AddProc(tl, tl->t);
Fh(tl, 0, "static int VGC_function_%.*s "
- "(struct vrt_ctx *ctx, struct req *);\n", PF(tl->t));
+ "(struct vrt_ctx *ctx);\n", PF(tl->t));
Fc(tl, 1, "\nstatic int __match_proto__(vcl_func_t)\n");
- Fc(tl, 1, "VGC_function_%.*s(struct vrt_ctx *ctx, "
- "struct req *req)\n", PF(tl->t));
+ Fc(tl, 1, "VGC_function_%.*s(struct vrt_ctx *ctx)\n",
+ PF(tl->t));
}
vcc_NextToken(tl);
tl->indent += INDENT;
diff --git a/lib/libvcl/vmodtool.py b/lib/libvcl/vmodtool.py
index ddec683..259f97f 100755
--- a/lib/libvcl/vmodtool.py
+++ b/lib/libvcl/vmodtool.py
@@ -246,27 +246,37 @@ class func(object):
def set_pfx(self, s):
self.pfx = s
- def c_proto(self, fo):
+ def c_proto(self, fo, fini=False):
fo.write(ctypes[self.retval])
- fo.write(" vmod_" + self.cnam)
- fo.write("(struct req *")
+ fo.write(" vmod_" + self.cnam + "(")
+ p = ""
+ if not fini:
+ fo.write("const struct vrt_ctx *")
+ p = ", "
if self.pfx != None:
- fo.write(self.pfx)
+ fo.write(p + self.pfx)
+ p = ", "
for a in self.al:
- fo.write(", " + ctypes[a.typ])
+ fo.write(p + ctypes[a.typ])
+ p = ", "
if a.nam != None:
fo.write(" " + a.nam)
fo.write(");\n")
- def c_typedef(self, modname):
+ def c_typedef(self, modname, fini=False):
s = "typedef "
s += ctypes[self.retval]
- s += " td_" + modname + "_" + self.cnam
- s += "(struct req *"
+ s += " td_" + modname + "_" + self.cnam + "("
+ p = ""
+ if not fini:
+ s += "const struct vrt_ctx *"
+ p = ", "
if self.pfx != None:
- s += self.pfx
+ s += p + self.pfx
+ p = ", "
for a in self.al:
- s += ", " + ctypes[a.typ]
+ s += p + ctypes[a.typ]
+ p = ", "
s += ");"
return s
@@ -300,10 +310,10 @@ class obj(object):
def set_modnam(self, modnam):
self.st = "struct vmod_" + modnam + "_" + self.nam
- self.init.set_pfx(", " + self.st + " **, const char *")
- self.fini.set_pfx(", " + self.st + " **")
+ self.init.set_pfx(self.st + " **, const char *")
+ self.fini.set_pfx(self.st + " **")
for m in self.methods:
- m.set_pfx(", " + self.st + " *")
+ m.set_pfx(self.st + " *")
def set_init(self, f):
self.init = f
@@ -319,7 +329,7 @@ class obj(object):
l.append("/* Object " + self.nam + " */")
l.append(self.st + ";")
l.append(self.init.c_typedef(modnam) + "")
- l.append(self.fini.c_typedef(modnam) + "")
+ l.append(self.fini.c_typedef(modnam, fini=True) + "")
for m in self.methods:
l.append(m.c_typedef(modnam) + "")
return l
@@ -327,7 +337,7 @@ class obj(object):
def c_proto(self, fo):
fo.write(self.st + ";\n")
self.init.c_proto(fo)
- self.fini.c_proto(fo)
+ self.fini.c_proto(fo, fini = True)
for m in self.methods:
m.c_proto(fo)
@@ -520,7 +530,7 @@ fh = open("vcc_if.h", "w")
file_header(fc)
file_header(fh)
-fh.write('struct req;\n')
+fh.write('struct vrt_ctx;\n')
fh.write('struct VCL_conf;\n')
fh.write('struct vmod_priv;\n')
fh.write("\n");
diff --git a/lib/libvmod_debug/vmod_debug.c b/lib/libvmod_debug/vmod_debug.c
index ee062ac..5583a4f 100644
--- a/lib/libvmod_debug/vmod_debug.c
+++ b/lib/libvmod_debug/vmod_debug.c
@@ -36,23 +36,23 @@
#include "vcc_if.h"
VCL_VOID __match_proto__(td_debug_panic)
-vmod_panic(struct req *req, const char *str, ...)
+vmod_panic(const struct vrt_ctx *ctx, const char *str, ...)
{
va_list ap;
char *b;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
va_start(ap, str);
- b = VRT_String(req->http->ws, "PANIC: ", str, ap);
+ b = VRT_String(ctx->ws, "PANIC: ", str, ap);
va_end(ap);
VAS_Fail("VCL", "", 0, b, 0, VAS_VCL);
}
VCL_STRING __match_proto__(td_debug_author)
-vmod_author(struct req *req, VCL_ENUM id)
+vmod_author(const struct vrt_ctx *ctx, VCL_ENUM id)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (!strcmp(id, "phk"))
return ("Poul-Henning");
if (!strcmp(id, "des"))
@@ -75,10 +75,10 @@ init_function(struct vmod_priv *priv, const struct VCL_conf *cfg)
}
VCL_VOID __match_proto__(td_debug_test_priv_call)
-vmod_test_priv_call(struct req *req, struct vmod_priv *priv)
+vmod_test_priv_call(const struct vrt_ctx *ctx, struct vmod_priv *priv)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (priv->priv == NULL) {
priv->priv = strdup("BAR");
priv->free = free;
@@ -88,9 +88,9 @@ vmod_test_priv_call(struct req *req, struct vmod_priv *priv)
}
VCL_VOID __match_proto__(td_debug_test_priv_vcl)
-vmod_test_priv_vcl(struct req *req, struct vmod_priv *priv)
+vmod_test_priv_vcl(const struct vrt_ctx *ctx, struct vmod_priv *priv)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
assert(!strcmp(priv->priv, "FOO"));
}
diff --git a/lib/libvmod_debug/vmod_debug_obj.c b/lib/libvmod_debug/vmod_debug_obj.c
index 2b628fa..c27b6db 100644
--- a/lib/libvmod_debug/vmod_debug_obj.c
+++ b/lib/libvmod_debug/vmod_debug_obj.c
@@ -42,12 +42,12 @@ struct vmod_debug_obj {
};
VCL_VOID
-vmod_obj__init(struct req *req, struct vmod_debug_obj **op,
+vmod_obj__init(const struct vrt_ctx *ctx, struct vmod_debug_obj **op,
const char *vcl_name, VCL_STRING s)
{
struct vmod_debug_obj *o;
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
(void)vcl_name;
(void)s;
AN(op);
@@ -60,10 +60,9 @@ vmod_obj__init(struct req *req, struct vmod_debug_obj **op,
}
VCL_VOID
-vmod_obj__fini(struct req *req, struct vmod_debug_obj **op)
+vmod_obj__fini(struct vmod_debug_obj **op)
{
- (void)req;
AN(op);
AN(*op);
FREE_OBJ(*op);
@@ -71,9 +70,10 @@ vmod_obj__fini(struct req *req, struct vmod_debug_obj **op)
}
VCL_STRING __match_proto__()
-vmod_obj_foo(struct req *req, struct vmod_debug_obj *o, VCL_STRING s)
+vmod_obj_foo(const struct vrt_ctx *ctx, struct vmod_debug_obj *o, VCL_STRING s)
{
- (void)req;
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
(void)s;
CHECK_OBJ_NOTNULL(o, VMOD_DEBUG_OBJ_MAGIC);
assert(o->foobar == 42);
@@ -81,9 +81,10 @@ vmod_obj_foo(struct req *req, struct vmod_debug_obj *o, VCL_STRING s)
}
VCL_TIME __match_proto__()
-vmod_obj_date(struct req *req, struct vmod_debug_obj *o)
+vmod_obj_date(const struct vrt_ctx *ctx, struct vmod_debug_obj *o)
{
- (void)req;
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(o, VMOD_DEBUG_OBJ_MAGIC);
assert(o->foobar == 42);
return (21.4);
diff --git a/lib/libvmod_directors/fall_back.c b/lib/libvmod_directors/fall_back.c
index 7907700..7c430ac 100644
--- a/lib/libvmod_directors/fall_back.c
+++ b/lib/libvmod_directors/fall_back.c
@@ -75,12 +75,12 @@ vmod_rr_getfd(const struct director *dir, struct busyobj *bo)
}
VCL_VOID __match_proto__()
-vmod_fallback__init(struct req *req, struct vmod_directors_fallback **rrp,
- const char *vcl_name)
+vmod_fallback__init(const struct vrt_ctx *ctx,
+ struct vmod_directors_fallback **rrp, const char *vcl_name)
{
struct vmod_directors_fallback *rr;
- AZ(req);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(rrp);
AZ(*rrp);
ALLOC_OBJ(rr, VMOD_DIRECTORS_FALLBACK_MAGIC);
@@ -90,11 +90,10 @@ vmod_fallback__init(struct req *req, struct vmod_directors_fallback **rrp,
}
VCL_VOID __match_proto__()
-vmod_fallback__fini(struct req *req, struct vmod_directors_fallback **rrp)
+vmod_fallback__fini(struct vmod_directors_fallback **rrp)
{
struct vmod_directors_fallback *rr;
- AZ(req);
rr = *rrp;
*rrp = NULL;
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_FALLBACK_MAGIC);
@@ -103,19 +102,20 @@ vmod_fallback__fini(struct req *req, struct vmod_directors_fallback **rrp)
}
VCL_VOID __match_proto__()
-vmod_fallback_add_backend(struct req *req,
+vmod_fallback_add_backend(const struct vrt_ctx *ctx,
struct vmod_directors_fallback *rr, VCL_BACKEND be)
{
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_FALLBACK_MAGIC);
(void)vdir_add_backend(rr->vd, be, 0.0);
}
VCL_BACKEND __match_proto__()
-vmod_fallback_backend(struct req *req, struct vmod_directors_fallback *rr)
+vmod_fallback_backend(const struct vrt_ctx *ctx,
+ struct vmod_directors_fallback *rr)
{
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_FALLBACK_MAGIC);
return (rr->vd->dir);
}
diff --git a/lib/libvmod_directors/hash.c b/lib/libvmod_directors/hash.c
index ac9bd41..43b4872 100644
--- a/lib/libvmod_directors/hash.c
+++ b/lib/libvmod_directors/hash.c
@@ -52,12 +52,12 @@ struct vmod_directors_hash {
};
VCL_VOID __match_proto__()
-vmod_hash__init(struct req *req, struct vmod_directors_hash **rrp,
+vmod_hash__init(const struct vrt_ctx *ctx, struct vmod_directors_hash **rrp,
const char *vcl_name)
{
struct vmod_directors_hash *rr;
- AZ(req);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(rrp);
AZ(*rrp);
ALLOC_OBJ(rr, VMOD_DIRECTORS_HASH_MAGIC);
@@ -70,11 +70,10 @@ vmod_hash__init(struct req *req, struct vmod_directors_hash **rrp,
}
VCL_VOID __match_proto__()
-vmod_hash__fini(struct req *req, struct vmod_directors_hash **rrp)
+vmod_hash__fini(struct vmod_directors_hash **rrp)
{
struct vmod_directors_hash *rr;
- AZ(req);
rr = *rrp;
*rrp = NULL;
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_HASH_MAGIC);
@@ -84,40 +83,41 @@ vmod_hash__fini(struct req *req, struct vmod_directors_hash **rrp)
}
VCL_VOID __match_proto__()
-vmod_hash_add_backend(struct req *req,
+vmod_hash_add_backend(const struct vrt_ctx *ctx,
struct vmod_directors_hash *rr, VCL_BACKEND be, double w)
{
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_HASH_MAGIC);
(void)vdir_add_backend(rr->vd, be, w);
}
VCL_BACKEND __match_proto__()
-vmod_hash_backend(struct req *req, struct vmod_directors_hash *rr, const char *arg, ...)
+vmod_hash_backend(const struct vrt_ctx *ctx, struct vmod_directors_hash *rr,
+ const char *arg, ...)
{
- struct SHA256Context ctx;
+ struct SHA256Context sha_ctx;
va_list ap;
const char *p;
unsigned char sha256[SHA256_LEN];
VCL_BACKEND be;
double r;
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_HASH_MAGIC);
- SHA256_Init(&ctx);
+ SHA256_Init(&sha_ctx);
va_start(ap, arg);
p = arg;
while (p != vrt_magic_string_end) {
- SHA256_Update(&ctx, arg, strlen(arg));
+ SHA256_Update(&sha_ctx, arg, strlen(arg));
p = va_arg(ap, const char *);
}
va_end(ap);
- SHA256_Final(sha256, &ctx);
+ SHA256_Final(sha256, &sha_ctx);
r = vbe32dec(sha256);
r = scalbn(r, -32);
- be = vdir_pick_be(rr->vd, req->busyobj, r, rr->nloops);
+ be = vdir_pick_be(rr->vd, ctx->bo, r, rr->nloops);
return (be);
}
diff --git a/lib/libvmod_directors/random.c b/lib/libvmod_directors/random.c
index d51c170..a8dd8a7 100644
--- a/lib/libvmod_directors/random.c
+++ b/lib/libvmod_directors/random.c
@@ -74,12 +74,12 @@ vmod_rr_getfd(const struct director *dir, struct busyobj *bo)
}
VCL_VOID __match_proto__()
-vmod_random__init(struct req *req, struct vmod_directors_random **rrp,
+vmod_random__init(const struct vrt_ctx *ctx, struct vmod_directors_random **rrp,
const char *vcl_name)
{
struct vmod_directors_random *rr;
- AZ(req);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(rrp);
AZ(*rrp);
ALLOC_OBJ(rr, VMOD_DIRECTORS_RANDOM_MAGIC);
@@ -92,11 +92,10 @@ vmod_random__init(struct req *req, struct vmod_directors_random **rrp,
}
VCL_VOID __match_proto__()
-vmod_random__fini(struct req *req, struct vmod_directors_random **rrp)
+vmod_random__fini(struct vmod_directors_random **rrp)
{
struct vmod_directors_random *rr;
- AZ(req);
rr = *rrp;
*rrp = NULL;
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_RANDOM_MAGIC);
@@ -106,19 +105,19 @@ vmod_random__fini(struct req *req, struct vmod_directors_random **rrp)
}
VCL_VOID __match_proto__()
-vmod_random_add_backend(struct req *req,
+vmod_random_add_backend(const struct vrt_ctx *ctx,
struct vmod_directors_random *rr, VCL_BACKEND be, double w)
{
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_RANDOM_MAGIC);
(void)vdir_add_backend(rr->vd, be, w);
}
VCL_BACKEND __match_proto__()
-vmod_random_backend(struct req *req, struct vmod_directors_random *rr)
+vmod_random_backend(const struct vrt_ctx *ctx, struct vmod_directors_random *rr)
{
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_RANDOM_MAGIC);
return (rr->vd->dir);
}
diff --git a/lib/libvmod_directors/round_robin.c b/lib/libvmod_directors/round_robin.c
index fb4ba92..fe0e528 100644
--- a/lib/libvmod_directors/round_robin.c
+++ b/lib/libvmod_directors/round_robin.c
@@ -78,12 +78,12 @@ vmod_rr_getfd(const struct director *dir, struct busyobj *bo)
}
VCL_VOID __match_proto__()
-vmod_round_robin__init(struct req *req, struct vmod_directors_round_robin **rrp,
- const char *vcl_name)
+vmod_round_robin__init(const struct vrt_ctx *ctx,
+ struct vmod_directors_round_robin **rrp, const char *vcl_name)
{
struct vmod_directors_round_robin *rr;
- AZ(req);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(rrp);
AZ(*rrp);
ALLOC_OBJ(rr, VMOD_DIRECTORS_ROUND_ROBIN_MAGIC);
@@ -93,11 +93,10 @@ vmod_round_robin__init(struct req *req, struct vmod_directors_round_robin **rrp,
}
VCL_VOID __match_proto__()
-vmod_round_robin__fini(struct req *req, struct vmod_directors_round_robin **rrp)
+vmod_round_robin__fini(struct vmod_directors_round_robin **rrp)
{
struct vmod_directors_round_robin *rr;
- AZ(req);
rr = *rrp;
*rrp = NULL;
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_ROUND_ROBIN_MAGIC);
@@ -106,19 +105,21 @@ vmod_round_robin__fini(struct req *req, struct vmod_directors_round_robin **rrp)
}
VCL_VOID __match_proto__()
-vmod_round_robin_add_backend(struct req *req,
+vmod_round_robin_add_backend(const struct vrt_ctx *ctx,
struct vmod_directors_round_robin *rr, VCL_BACKEND be)
{
- (void)req;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_ROUND_ROBIN_MAGIC);
(void)vdir_add_backend(rr->vd, be, 0.0);
}
VCL_BACKEND __match_proto__()
-vmod_round_robin_backend(struct req *req, struct vmod_directors_round_robin *rr)
+vmod_round_robin_backend(const struct vrt_ctx *ctx,
+ struct vmod_directors_round_robin *rr)
{
- (void)req;
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(rr, VMOD_DIRECTORS_ROUND_ROBIN_MAGIC);
return (rr->vd->dir);
}
diff --git a/lib/libvmod_std/vmod_std.c b/lib/libvmod_std/vmod_std.c
index cbea944..f105135 100644
--- a/lib/libvmod_std/vmod_std.c
+++ b/lib/libvmod_std/vmod_std.c
@@ -46,25 +46,25 @@
#include "vcc_if.h"
VCL_VOID __match_proto__(td_std_set_ip_tos)
-vmod_set_ip_tos(struct req *req, VCL_INT tos)
+vmod_set_ip_tos(const struct vrt_ctx *ctx, VCL_INT tos)
{
int itos = tos;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- VTCP_Assert(setsockopt(req->sp->fd,
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ VTCP_Assert(setsockopt(ctx->req->sp->fd,
IPPROTO_IP, IP_TOS, &itos, sizeof(itos)));
}
static const char *
-vmod_updown(struct req *req, int up, const char *s, va_list ap)
+vmod_updown(const struct vrt_ctx *ctx, int up, const char *s, va_list ap)
{
unsigned u;
char *b, *e;
const char *p;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- u = WS_Reserve(req->ws, 0);
- e = b = req->ws->f;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ u = WS_Reserve(ctx->ws, 0);
+ e = b = ctx->ws->f;
e += u;
p = s;
while (p != vrt_magic_string_end && b < e) {
@@ -81,48 +81,48 @@ vmod_updown(struct req *req, int up, const char *s, va_list ap)
*b = '\0';
b++;
if (b > e) {
- WS_Release(req->ws, 0);
+ WS_Release(ctx->ws, 0);
return (NULL);
} else {
e = b;
- b = req->ws->f;
- WS_Release(req->ws, e - b);
+ b = ctx->ws->f;
+ WS_Release(ctx->ws, e - b);
return (b);
}
}
VCL_STRING __match_proto__(td_std_toupper)
-vmod_toupper(struct req *req, const char *s, ...)
+vmod_toupper(const struct vrt_ctx *ctx, const char *s, ...)
{
const char *p;
va_list ap;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
va_start(ap, s);
- p = vmod_updown(req, 1, s, ap);
+ p = vmod_updown(ctx, 1, s, ap);
va_end(ap);
return (p);
}
VCL_STRING __match_proto__(td_std_tolower)
-vmod_tolower(struct req *req, const char *s, ...)
+vmod_tolower(const struct vrt_ctx *ctx, const char *s, ...)
{
const char *p;
va_list ap;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
va_start(ap, s);
- p = vmod_updown(req, 0, s, ap);
+ p = vmod_updown(ctx, 0, s, ap);
va_end(ap);
return (p);
}
VCL_REAL __match_proto__(td_std_random)
-vmod_random(struct req *req, VCL_REAL lo, VCL_REAL hi)
+vmod_random(const struct vrt_ctx *ctx, VCL_REAL lo, VCL_REAL hi)
{
double a;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
a = drand48();
a *= hi - lo;
a += lo;
@@ -130,60 +130,56 @@ vmod_random(struct req *req, VCL_REAL lo, VCL_REAL hi)
}
VCL_VOID __match_proto__(td_std_log)
-vmod_log(struct req *req, const char *fmt, ...)
+vmod_log(const struct vrt_ctx *ctx, const char *fmt, ...)
{
unsigned u;
va_list ap;
txt t;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- u = WS_Reserve(req->ws, 0);
- t.b = req->ws->f;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ u = WS_Reserve(ctx->ws, 0);
+ t.b = ctx->ws->f;
va_start(ap, fmt);
t.e = VRT_StringList(t.b, u, fmt, ap);
va_end(ap);
if (t.e != NULL) {
assert(t.e > t.b);
t.e--;
- VSLbt(req->vsl, SLT_VCL_Log, t);
+ VSLbt(ctx->vsl, SLT_VCL_Log, t);
}
- WS_Release(req->ws, 0);
+ WS_Release(ctx->ws, 0);
}
VCL_VOID __match_proto__(td_std_syslog)
-vmod_syslog(struct req *req, VCL_INT fac, const char *fmt, ...)
+vmod_syslog(const struct vrt_ctx *ctx, VCL_INT fac, const char *fmt, ...)
{
char *p;
unsigned u;
va_list ap;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- u = WS_Reserve(req->ws, 0);
- p = req->ws->f;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ u = WS_Reserve(ctx->ws, 0);
+ p = ctx->ws->f;
va_start(ap, fmt);
p = VRT_StringList(p, u, fmt, ap);
va_end(ap);
if (p != NULL)
syslog((int)fac, "%s", p);
- WS_Release(req->ws, 0);
+ WS_Release(ctx->ws, 0);
}
VCL_VOID __match_proto__(td_std_collect)
-vmod_collect(struct req *req, const struct gethdr_s *hdr)
+vmod_collect(const struct vrt_ctx *ctx, const struct gethdr_s *hdr)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (hdr->where == HDR_REQ)
- http_CollectHdr(req->http, hdr->what);
+ http_CollectHdr(ctx->http_req, hdr->what);
else if (hdr->where == HDR_BEREQ) {
- AN(req->busyobj);
- http_CollectHdr(req->busyobj->bereq, hdr->what);
- }
- else if (hdr->where == HDR_BERESP) {
- AN(req->busyobj);
- http_CollectHdr(req->busyobj->beresp, hdr->what);
- }
- else if (hdr->where == HDR_RESP) {
- http_CollectHdr(req->resp, hdr->what);
+ http_CollectHdr(ctx->http_bereq, hdr->what);
+ } else if (hdr->where == HDR_BERESP) {
+ http_CollectHdr(ctx->http_beresp, hdr->what);
+ } else if (hdr->where == HDR_RESP) {
+ http_CollectHdr(ctx->http_resp, hdr->what);
}
}
diff --git a/lib/libvmod_std/vmod_std_conversions.c b/lib/libvmod_std/vmod_std_conversions.c
index 96456b2..c763aa3 100644
--- a/lib/libvmod_std/vmod_std_conversions.c
+++ b/lib/libvmod_std/vmod_std_conversions.c
@@ -39,12 +39,12 @@
#include "vcc_if.h"
VCL_DURATION __match_proto__()
-vmod_duration(struct req *req, const char *p, VCL_DURATION d)
+vmod_duration(const struct vrt_ctx *ctx, const char *p, VCL_DURATION d)
{
char *e;
double r;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (p == NULL)
return (d);
@@ -89,12 +89,12 @@ vmod_duration(struct req *req, const char *p, VCL_DURATION d)
}
VCL_INT __match_proto__()
-vmod_integer(struct req *req, const char *p, VCL_INT i)
+vmod_integer(const struct vrt_ctx *ctx, const char *p, VCL_INT i)
{
char *e;
long r;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (p == NULL)
return (i);
diff --git a/lib/libvmod_std/vmod_std_fileread.c b/lib/libvmod_std/vmod_std_fileread.c
index 163926c..5ddc6bf 100644
--- a/lib/libvmod_std/vmod_std_fileread.c
+++ b/lib/libvmod_std/vmod_std_fileread.c
@@ -83,12 +83,12 @@ free_frfile(void *ptr)
}
VCL_STRING __match_proto__(td_std_fileread)
-vmod_fileread(struct req *req, struct vmod_priv *priv, VCL_STRING file_name)
+vmod_fileread(const struct vrt_ctx *ctx, struct vmod_priv *priv, VCL_STRING file_name)
{
struct frfile *frf = NULL;
char *s;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(priv);
if (priv->priv != NULL) {
More information about the varnish-commit
mailing list