[master] 14b48c8 More VRT sess->req changes
Poul-Henning Kamp
phk at varnish-cache.org
Mon Jun 18 14:27:31 CEST 2012
commit 14b48c8f8a9222689cef12d5fe9f19dc87a5eaa6
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Jun 18 12:27:22 2012 +0000
More VRT sess->req changes
diff --git a/bin/varnishd/cache/cache_hash.c b/bin/varnishd/cache/cache_hash.c
index d288e3d..bfb030d 100644
--- a/bin/varnishd/cache/cache_hash.c
+++ b/bin/varnishd/cache/cache_hash.c
@@ -506,15 +506,16 @@ hsh_rush(struct dstat *ds, struct objhead *oh)
*/
void
-HSH_Purge(const struct sess *sp, struct objhead *oh, double ttl, double grace)
+HSH_Purge(struct req *req, struct objhead *oh, double ttl, double grace)
{
struct objcore *oc, **ocp;
unsigned spc, nobj, n;
struct object *o;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
CHECK_OBJ_NOTNULL(oh, OBJHEAD_MAGIC);
- spc = WS_Reserve(sp->req->ws, 0);
- ocp = (void*)sp->req->ws->f;
+ spc = WS_Reserve(req->ws, 0);
+ ocp = (void*)req->ws->f;
Lck_Lock(&oh->mtx);
assert(oh->refcnt > 0);
nobj = 0;
@@ -531,7 +532,8 @@ HSH_Purge(const struct sess *sp, struct objhead *oh, double ttl, double grace)
continue;
}
- (void)oc_getobj(&sp->wrk->stats, oc); /* XXX: still needed ? */
+ (void)oc_getobj(&req->sp->wrk->stats, oc);
+ /* XXX: still needed ? */
xxxassert(spc >= sizeof *ocp);
oc->refcnt++;
@@ -548,16 +550,16 @@ HSH_Purge(const struct sess *sp, struct objhead *oh, double ttl, double grace)
for (n = 0; n < nobj; n++) {
oc = ocp[n];
CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
- o = oc_getobj(&sp->wrk->stats, oc);
+ o = oc_getobj(&req->sp->wrk->stats, oc);
if (o == NULL)
continue;
CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
o->exp.ttl = ttl;
o->exp.grace = grace;
EXP_Rearm(o);
- (void)HSH_Deref(&sp->wrk->stats, NULL, &o);
+ (void)HSH_Deref(&req->sp->wrk->stats, NULL, &o);
}
- WS_Release(sp->req->ws, 0);
+ WS_Release(req->ws, 0);
}
diff --git a/bin/varnishd/cache/cache_vcl.c b/bin/varnishd/cache/cache_vcl.c
index b909a0e..07c1687 100644
--- a/bin/varnishd/cache/cache_vcl.c
+++ b/bin/varnishd/cache/cache_vcl.c
@@ -191,7 +191,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(NULL, NULL);
+ (void)vcl->conf->init_func(NULL);
Lck_Lock(&vcl_mtx);
if (vcl_active == NULL)
vcl_active = vcl;
@@ -215,7 +215,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(NULL, NULL);
+ (void)vcl->conf->fini_func(NULL);
vcl->conf->fini_vcl(NULL);
free(vcl->name);
(void)dlclose(vcl->dlh);
@@ -344,7 +344,7 @@ VCL_##func##_method(struct req *req) \
req->handling = 0; \
req->cur_method = VCL_MET_ ## upper; \
VSLb(req->vsl, SLT_VCL_call, "%s", #func); \
- (void)req->vcl->func##_func(req->sp, req); \
+ (void)req->vcl->func##_func(req); \
VSLb(req->vsl, SLT_VCL_return, "%s", \
VCL_Return_Name(req->handling)); \
req->cur_method = 0; \
diff --git a/bin/varnishd/cache/cache_vrt.c b/bin/varnishd/cache/cache_vrt.c
index f172769..8cc2920 100644
--- a/bin/varnishd/cache/cache_vrt.c
+++ b/bin/varnishd/cache/cache_vrt.c
@@ -286,7 +286,7 @@ VRT_r_now(const struct req *req)
/*--------------------------------------------------------------------*/
char *
-VRT_IP_string(struct req *req, const struct sockaddr_storage *sa)
+VRT_IP_string(const struct req *req, const struct sockaddr_storage *sa)
{
char *p;
const struct sockaddr_in *si4;
@@ -316,7 +316,7 @@ VRT_IP_string(struct req *req, const struct sockaddr_storage *sa)
}
char *
-VRT_int_string(struct req *req, int num)
+VRT_int_string(const struct req *req, int num)
{
char *p;
int size;
@@ -329,7 +329,7 @@ VRT_int_string(struct req *req, int num)
}
char *
-VRT_double_string(struct req *req, double num)
+VRT_double_string(const struct req *req, double num)
{
char *p;
int size;
@@ -342,7 +342,7 @@ VRT_double_string(struct req *req, double num)
}
char *
-VRT_time_string(struct req *req, double t)
+VRT_time_string(const struct req *req, double t)
{
char *p;
@@ -375,17 +375,18 @@ VRT_bool_string(const struct req *req, unsigned val)
/*--------------------------------------------------------------------*/
void
-VRT_Rollback(const struct sess *sp)
+VRT_Rollback(struct req *req)
{
- HTTP_Copy(sp->req->http, sp->req->http0);
- WS_Reset(sp->req->ws, sp->req->ws_req);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ HTTP_Copy(req->http, req->http0);
+ WS_Reset(req->ws, req->ws_req);
}
/*--------------------------------------------------------------------*/
void
-VRT_synth_page(struct req *req, unsigned flags, const char *str, ...)
+VRT_synth_page(const struct req *req, unsigned flags, const char *str, ...)
{
va_list ap;
const char *p;
@@ -415,14 +416,14 @@ VRT_synth_page(struct req *req, unsigned flags, const char *str, ...)
/*--------------------------------------------------------------------*/
void
-VRT_ban(struct sess *sp, char *cmds, ...)
+VRT_ban(const struct req *req, char *cmds, ...)
{
char *a1, *a2, *a3;
va_list ap;
struct ban *b;
int good;
- (void)sp;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
b = BAN_New();
va_start(ap, cmds);
a1 = cmds;
@@ -450,7 +451,7 @@ VRT_ban(struct sess *sp, char *cmds, ...)
/*--------------------------------------------------------------------*/
void
-VRT_ban_string(struct sess *sp, const char *str)
+VRT_ban_string(const struct req *req, const char *str)
{
char *a1, *a2, *a3;
char **av;
@@ -458,7 +459,7 @@ VRT_ban_string(struct sess *sp, const char *str)
int good;
int i;
- (void)sp;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
av = VAV_Parse(str, NULL, ARGV_NOESC);
if (av[0] != NULL) {
/* XXX: report error how ? */
@@ -500,12 +501,14 @@ VRT_ban_string(struct sess *sp, const char *str)
*/
void
-VRT_purge(const struct sess *sp, double ttl, double grace)
+VRT_purge(struct req *req, double ttl, double grace)
{
- if (sp->req->cur_method == VCL_MET_HIT)
- HSH_Purge(sp, sp->req->obj->objcore->objhead, ttl, grace);
- else if (sp->req->cur_method == VCL_MET_MISS)
- HSH_Purge(sp, sp->req->objcore->objhead, ttl, grace);
+
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ if (req->cur_method == VCL_MET_HIT)
+ HSH_Purge(req, req->obj->objcore->objhead, ttl, grace);
+ else if (req->cur_method == VCL_MET_MISS)
+ HSH_Purge(req, req->objcore->objhead, ttl, grace);
}
/*--------------------------------------------------------------------
diff --git a/bin/varnishd/flint.lnt b/bin/varnishd/flint.lnt
index 1569271..5ddd6ce 100644
--- a/bin/varnishd/flint.lnt
+++ b/bin/varnishd/flint.lnt
@@ -155,6 +155,16 @@
-e441 // for clause irregularity: loop variable '___' not found in 2nd for expression
+// Vmod instantiation symbols are defined in all vmods
+
+-esym(14, Vmod_Name)
+-esym(14, Vmod_Func)
+-esym(14, Vmod_Len)
+-esym(14, Vmod_Proto)
+-esym(14, Vmod_Spec)
+-esym(14, Vmod_Varnish_ABI)
+-esym(14, Vmod_Id)
+
// Review all below this line ///////////////////////////////////////////////
-e732 // 183 Loss of sign (___) (___ to ___)
diff --git a/bin/varnishd/hash/hash_slinger.h b/bin/varnishd/hash/hash_slinger.h
index 7eb1b14..fe0fb9f 100644
--- a/bin/varnishd/hash/hash_slinger.h
+++ b/bin/varnishd/hash/hash_slinger.h
@@ -59,7 +59,7 @@ void HSH_Drop(struct worker *, struct object **);
void HSH_Init(const struct hash_slinger *slinger);
void HSH_AddString(struct req *, const char *str);
void HSH_Insert(struct worker *, const void *hash, struct objcore *);
-void HSH_Purge(const struct sess *, struct objhead *, double ttl, double grace);
+void HSH_Purge(struct req *, struct objhead *, double ttl, double grace);
void HSH_config(const char *h_arg);
struct objcore *HSH_NewObjCore(struct worker *wrk);
diff --git a/bin/varnishtest/tests/c00033.vtc b/bin/varnishtest/tests/c00033.vtc
index d93a6d0..d4289e3 100644
--- a/bin/varnishtest/tests/c00033.vtc
+++ b/bin/varnishtest/tests/c00033.vtc
@@ -25,13 +25,13 @@ varnish v1 -vcl+backend {
sub vcl_hit {
if (req.request == "PURGE") {
- C{ VRT_purge(sp, 0, 0); }C
+ C{ VRT_purge(req, 0, 0); }C
error 456 "got it";
}
}
sub vcl_miss {
if (req.request == "PURGE") {
- C{ VRT_purge(sp, 0, 0); }C
+ C{ VRT_purge(req, 0, 0); }C
error 456 "got it";
}
}
diff --git a/include/vrt.h b/include/vrt.h
index 834f972..20545fc 100644
--- a/include/vrt.h
+++ b/include/vrt.h
@@ -31,7 +31,6 @@
* XXX: When this file is changed, lib/libvcl/generate.py *MUST* be rerun.
*/
-struct sess;
struct req;
struct vsb;
struct cli;
@@ -150,9 +149,9 @@ int VRT_re_match(struct req *, const char *, void *re);
const char *VRT_regsub(struct req *, int all, const char *,
void *, const char *);
-void VRT_ban(struct sess *sp, char *, ...);
-void VRT_ban_string(struct sess *sp, const char *);
-void VRT_purge(const struct sess *sp, double ttl, double grace);
+void VRT_ban(const struct req *, char *, ...);
+void VRT_ban_string(const struct req *, const char *);
+void VRT_purge(struct req *, double ttl, double grace);
void VRT_count(struct req *, unsigned);
int VRT_rewrite(const char *, const char *);
@@ -171,11 +170,10 @@ void VRT_hashdata(struct req *, const char *str, ...);
int VRT_strcmp(const char *s1, const char *s2);
void VRT_memmove(void *dst, const void *src, unsigned len);
-void VRT_ESI(const struct sess *sp);
-void VRT_Rollback(const struct sess *sp);
+void VRT_Rollback(struct req *);
/* Synthetic pages */
-void VRT_synth_page(struct req *sp, unsigned flags, const char *, ...);
+void VRT_synth_page(const struct req *, unsigned flags, const char *, ...);
/* Backend related */
void VRT_init_dir(struct cli *, struct director **, const char *name,
@@ -209,10 +207,10 @@ int VRT_Stv(const char *nm);
/* Convert things to string */
-char *VRT_IP_string(struct req *, const struct sockaddr_storage *sa);
-char *VRT_int_string(struct req *, int);
-char *VRT_double_string(struct req *, double);
-char *VRT_time_string(struct req *, double);
+char *VRT_IP_string(const struct req *, const struct sockaddr_storage *sa);
+char *VRT_int_string(const struct req *, int);
+char *VRT_double_string(const struct req *, double);
+char *VRT_time_string(const struct req *, double);
const char *VRT_bool_string(const struct req *, unsigned);
const char *VRT_backend_string(const struct req *, const struct director *d);
diff --git a/lib/libvcl/generate.py b/lib/libvcl/generate.py
index 0c1c02e..c999186 100755
--- a/lib/libvcl/generate.py
+++ b/lib/libvcl/generate.py
@@ -721,7 +721,7 @@ struct cli;
typedef int vcl_init_f(struct cli *);
typedef void vcl_fini_f(struct cli *);
-typedef int vcl_func_f(struct sess *sp, struct req *req);
+typedef int vcl_func_f(struct req *req);
""")
diff --git a/lib/libvcl/vcc_action.c b/lib/libvcl/vcc_action.c
index 81cf597..7eecc33 100644
--- a/lib/libvcl/vcc_action.c
+++ b/lib/libvcl/vcc_action.c
@@ -44,7 +44,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(sp, req))\n", PF(tl->t));
+ Fb(tl, 1, "if (VGC_function_%.*s(req))\n", PF(tl->t));
Fb(tl, 1, "\treturn (1);\n");
vcc_NextToken(tl);
return;
@@ -178,7 +178,7 @@ parse_ban(struct vcc *tl)
ExpectErr(tl, '(');
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_ban_string(sp, ");
+ Fb(tl, 1, "VRT_ban_string(req, ");
vcc_Expr(tl, STRING);
ERRCHK(tl);
Fb(tl, 0, ");\n");
@@ -197,7 +197,7 @@ parse_ban_url(struct vcc *tl)
ExpectErr(tl, '(');
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_ban(sp, \"req.url\", \"~\", ");
+ Fb(tl, 1, "VRT_ban(req, \"req.url\", \"~\", ");
vcc_Expr(tl, STRING);
ERRCHK(tl);
ExpectErr(tl, ')');
@@ -270,7 +270,7 @@ parse_rollback(struct vcc *tl)
{
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_Rollback(sp);\n");
+ Fb(tl, 1, "VRT_Rollback(req);\n");
}
/*--------------------------------------------------------------------*/
@@ -280,7 +280,7 @@ parse_purge(struct vcc *tl)
{
vcc_NextToken(tl);
- Fb(tl, 1, "VRT_purge(sp, 0, 0);\n");
+ Fb(tl, 1, "VRT_purge(req, 0, 0);\n");
}
/*--------------------------------------------------------------------*/
diff --git a/lib/libvcl/vcc_compile.c b/lib/libvcl/vcc_compile.c
index a16fbed..30f2a24 100644
--- a/lib/libvcl/vcc_compile.c
+++ b/lib/libvcl/vcc_compile.c
@@ -672,7 +672,7 @@ vcc_CompileSource(const struct vcc *tl0, struct vsb *sb, struct source *sp)
/* Emit method functions */
for (i = 0; i < VCL_MET_MAX; i++) {
Fc(tl, 1, "\nstatic int __match_proto__(vcl_func_f)\n");
- Fc(tl, 1, "VGC_function_%s(struct sess *sp, struct req *req)\n",
+ Fc(tl, 1, "VGC_function_%s(struct req *req)\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 a3ef4b6..8fbaa04 100644
--- a/lib/libvcl/vcc_expr.c
+++ b/lib/libvcl/vcc_expr.c
@@ -539,7 +539,7 @@ vcc_Eval_Func(struct vcc *tl, struct expr **e, const struct symbol *sym)
SkipToken(tl, ID);
SkipToken(tl, '(');
p = sym->args;
- e2 = vcc_mk_expr(vcc_arg_type(&p), "%s(sp\v+", sym->cfunc);
+ e2 = vcc_mk_expr(vcc_arg_type(&p), "%s(req\v+", sym->cfunc);
while (*p != '\0') {
e1 = NULL;
fmt = vcc_arg_type(&p);
diff --git a/lib/libvcl/vcc_parse.c b/lib/libvcl/vcc_parse.c
index 1a6bbf3..10170b3 100644
--- a/lib/libvcl/vcc_parse.c
+++ b/lib/libvcl/vcc_parse.c
@@ -225,11 +225,9 @@ vcc_Function(struct vcc *tl)
}
tl->curproc = vcc_AddProc(tl, tl->t);
Fh(tl, 0, "static int VGC_function_%.*s "
- "(struct sess *, struct req *);\n",
- PF(tl->t));
+ "(struct req *);\n", PF(tl->t));
Fc(tl, 1, "\nstatic int __match_proto__(vcl_func_t)\n");
- Fc(tl, 1, "VGC_function_%.*s"
- "(struct sess *sp, struct req *req)\n",
+ Fc(tl, 1, "VGC_function_%.*s(struct req *req)\n",
PF(tl->t));
}
vcc_NextToken(tl);
diff --git a/lib/libvcl/vmodtool.py b/lib/libvcl/vmodtool.py
index 041edcb..e2cf8b5 100755
--- a/lib/libvcl/vmodtool.py
+++ b/lib/libvcl/vmodtool.py
@@ -81,7 +81,7 @@ def do_func(fname, rval, args, vargs):
#print(fname, rval, args)
# C argument list
- cargs = "(struct sess *"
+ cargs = "(struct req *"
for i in args:
cargs += ", " + i
cargs += ")"
@@ -273,7 +273,7 @@ fh = open("vcc_if.h", "w")
file_header(fc)
file_header(fh)
-fh.write('struct sess;\n')
+fh.write('struct req;\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 309664a..fd65fd2 100644
--- a/lib/libvmod_debug/vmod_debug.c
+++ b/lib/libvmod_debug/vmod_debug.c
@@ -35,24 +35,24 @@
#include "vrt.h"
#include "vcc_if.h"
-void
-vmod_panic(struct sess *sp, const char *str, ...)
+void __match_proto__(td_debug_panic)
+vmod_panic(struct req *req, const char *str, ...)
{
va_list ap;
char *b;
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
va_start(ap, str);
- b = VRT_String(sp->req->http->ws, "PANIC: ", str, ap);
+ b = VRT_String(req->http->ws, "PANIC: ", str, ap);
va_end(ap);
VAS_Fail("VCL", "", 0, b, 0, 2);
}
-const char * __match_proto__()
-vmod_author(struct sess *sp, const char *id)
+const char * __match_proto__(td_debug_author)
+vmod_author(struct req *req, const char *id)
{
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
if (!strcmp(id, "phk"))
return ("Poul-Henning");
if (!strcmp(id, "des"))
@@ -74,11 +74,11 @@ init_function(struct vmod_priv *priv, const struct VCL_conf *cfg)
return (0);
}
-void
-vmod_test_priv_call(struct sess *sp, struct vmod_priv *priv)
+void __match_proto__(td_debug_test_priv_call)
+vmod_test_priv_call(struct req *req, struct vmod_priv *priv)
{
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
if (priv->priv == NULL) {
priv->priv = strdup("BAR");
priv->free = free;
@@ -87,11 +87,11 @@ vmod_test_priv_call(struct sess *sp, struct vmod_priv *priv)
}
}
-void
-vmod_test_priv_vcl(struct sess *sp, struct vmod_priv *priv)
+void __match_proto__(td_debug_test_priv_vcl)
+vmod_test_priv_vcl(struct req *req, struct vmod_priv *priv)
{
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
assert(!strcmp(priv->priv, "FOO"));
}
diff --git a/lib/libvmod_std/vmod_std.c b/lib/libvmod_std/vmod_std.c
index c8937f6..4265cf1 100644
--- a/lib/libvmod_std/vmod_std.c
+++ b/lib/libvmod_std/vmod_std.c
@@ -45,23 +45,25 @@
#include "vcc_if.h"
-void __match_proto__()
-vmod_set_ip_tos(struct sess *sp, int tos)
+void __match_proto__(td_std_set_ip_tos)
+vmod_set_ip_tos(struct req *req, int tos)
{
- VTCP_Assert(setsockopt(sp->fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)));
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ VTCP_Assert(setsockopt(req->sp->fd,
+ IPPROTO_IP, IP_TOS, &tos, sizeof(tos)));
}
-static const char * __match_proto__()
-vmod_updown(struct sess *sp, int up, const char *s, va_list ap)
+static const char *
+vmod_updown(struct req *req, int up, const char *s, va_list ap)
{
unsigned u;
char *b, *e;
const char *p;
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
- u = WS_Reserve(sp->req->ws, 0);
- e = b = sp->req->ws->f;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ u = WS_Reserve(req->ws, 0);
+ e = b = req->ws->f;
e += u;
p = s;
while (p != vrt_magic_string_end && b < e) {
@@ -78,101 +80,101 @@ vmod_updown(struct sess *sp, int up, const char *s, va_list ap)
*b = '\0';
b++;
if (b > e) {
- WS_Release(sp->req->ws, 0);
+ WS_Release(req->ws, 0);
return (NULL);
} else {
e = b;
- b = sp->req->ws->f;
- WS_Release(sp->req->ws, e - b);
+ b = req->ws->f;
+ WS_Release(req->ws, e - b);
return (b);
}
}
-const char * __match_proto__()
-vmod_toupper(struct sess *sp, const char *s, ...)
+const char * __match_proto__(td_std_toupper)
+vmod_toupper(struct req *req, const char *s, ...)
{
const char *p;
va_list ap;
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
va_start(ap, s);
- p = vmod_updown(sp, 1, s, ap);
+ p = vmod_updown(req, 1, s, ap);
va_end(ap);
return (p);
}
-const char * __match_proto__()
-vmod_tolower(struct sess *sp, const char *s, ...)
+const char * __match_proto__(td_std_tolower)
+vmod_tolower(struct req *req, const char *s, ...)
{
const char *p;
va_list ap;
- CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
va_start(ap, s);
- p = vmod_updown(sp, 0, s, ap);
+ p = vmod_updown(req, 0, s, ap);
va_end(ap);
return (p);
}
-double
-vmod_random(struct sess *sp, double lo, double hi)
+double __match_proto__(td_std_random)
+vmod_random(struct req *req, double lo, double hi)
{
double a;
- (void)sp;
-
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
a = drand48();
a *= hi - lo;
a += lo;
return (a);
}
-void __match_proto__()
-vmod_log(struct sess *sp, const char *fmt, ...)
+void __match_proto__(td_std_log)
+vmod_log(struct req *req, const char *fmt, ...)
{
unsigned u;
va_list ap;
txt t;
- u = WS_Reserve(sp->req->ws, 0);
- t.b = sp->req->ws->f;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ u = WS_Reserve(req->ws, 0);
+ t.b = req->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(sp->req->vsl, SLT_VCL_Log, t);
+ VSLbt(req->vsl, SLT_VCL_Log, t);
}
- WS_Release(sp->req->ws, 0);
+ WS_Release(req->ws, 0);
}
-void __match_proto__()
-vmod_syslog(struct sess *sp, int fac, const char *fmt, ...)
+void __match_proto__(td_std_syslog)
+vmod_syslog(struct req *req, int fac, const char *fmt, ...)
{
char *p;
unsigned u;
va_list ap;
- u = WS_Reserve(sp->req->ws, 0);
- p = sp->req->ws->f;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ u = WS_Reserve(req->ws, 0);
+ p = req->ws->f;
va_start(ap, fmt);
p = VRT_StringList(p, u, fmt, ap);
va_end(ap);
if (p != NULL)
syslog(fac, "%s", p);
- WS_Release(sp->req->ws, 0);
+ WS_Release(req->ws, 0);
}
-void __match_proto__()
-vmod_collect(struct sess *sp, enum gethdr_e e, const char *h)
+void __match_proto__(td_std_collect)
+vmod_collect(struct req *req, enum gethdr_e e, const char *h)
{
- (void)e;
- (void)sp;
- (void)h;
+
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
if (e == HDR_REQ)
- http_CollectHdr(sp->req->http, h);
- else if (e == HDR_BERESP && sp->req->busyobj != NULL)
- http_CollectHdr(sp->req->busyobj->beresp, h);
+ http_CollectHdr(req->http, h);
+ else if (e == HDR_BERESP && req->busyobj != NULL)
+ http_CollectHdr(req->busyobj->beresp, h);
}
diff --git a/lib/libvmod_std/vmod_std_conversions.c b/lib/libvmod_std/vmod_std_conversions.c
index 149be81..45cc7a1 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"
double __match_proto__()
-vmod_duration(struct sess *sp, const char *p, double d)
+vmod_duration(struct req *req, const char *p, double d)
{
char *e;
double r;
- (void)sp;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
if (p == NULL)
return (d);
@@ -89,12 +89,12 @@ vmod_duration(struct sess *sp, const char *p, double d)
}
int __match_proto__()
-vmod_integer(struct sess *sp, const char *p, int i)
+vmod_integer(struct req *req, const char *p, int i)
{
char *e;
int r;
- (void)sp;
+ CHECK_OBJ_NOTNULL(req, REQ_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 7012b66..d424d75 100644
--- a/lib/libvmod_std/vmod_std_fileread.c
+++ b/lib/libvmod_std/vmod_std_fileread.c
@@ -82,13 +82,13 @@ free_frfile(void *ptr)
}
}
-const char *
-vmod_fileread(struct sess *sp, struct vmod_priv *priv, const char *file_name)
+const char * __match_proto__(td_std_fileread)
+vmod_fileread(struct req *req, struct vmod_priv *priv, const char *file_name)
{
struct frfile *frf = NULL;
char *s;
- (void)sp;
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
AN(priv);
if (priv->priv != NULL) {
More information about the varnish-commit
mailing list