[master] 4478944 Make all the VCL variables controlled by generate.py use vrt_ctx.
Poul-Henning Kamp
phk at varnish-cache.org
Tue Apr 30 13:46:21 CEST 2013
commit 4478944be97c7374707b475346b76584623ebcba
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Apr 30 11:46:02 2013 +0000
Make all the VCL variables controlled by generate.py use vrt_ctx.
diff --git a/bin/varnishd/cache/cache_vrt.c b/bin/varnishd/cache/cache_vrt.c
index b221f22..0d9af43 100644
--- a/bin/varnishd/cache/cache_vrt.c
+++ b/bin/varnishd/cache/cache_vrt.c
@@ -295,9 +295,10 @@ VRT_hashdata(struct req *req, const char *str, ...)
/*--------------------------------------------------------------------*/
double
-VRT_r_now()
+VRT_r_now(const struct vrt_ctx *ctx)
{
+ (void)ctx;
return (VTIM_real());
}
diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index 6fe06e6..6b79f9c 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -150,26 +150,30 @@ VBERESP(beresp, unsigned, uncacheable, do_pass)
/*--------------------------------------------------------------------*/
const char *
-VRT_r_client_identity(const struct req *req)
+VRT_r_client_identity(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- if (req->client_identity != NULL)
- return (req->client_identity);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ if (ctx->req->client_identity != NULL)
+ return (ctx->req->client_identity);
else
- return (req->sp->addr);
+ return (ctx->req->sp->addr);
}
void
-VRT_l_client_identity(struct req *req, const char *str, ...)
+VRT_l_client_identity(const struct vrt_ctx *ctx, const char *str, ...)
{
va_list ap;
char *b;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
va_start(ap, str);
- b = VRT_String(req->http->ws, NULL, str, ap);
+ // XXX ?
+ b = VRT_String(ctx->req->http->ws, NULL, str, ap);
va_end(ap);
- req->client_identity = b;
+ ctx->req->client_identity = b;
}
/*--------------------------------------------------------------------*/
@@ -257,33 +261,37 @@ VRT_l_beresp_storage(const struct vrt_ctx *ctx, const char *str, ...)
/*--------------------------------------------------------------------*/
void
-VRT_l_req_backend(struct req *req, struct director *be)
+VRT_l_req_backend(const struct vrt_ctx *ctx, struct director *be)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- req->director = be;
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ ctx->req->director = be;
}
struct director *
-VRT_r_req_backend(const struct req *req)
+VRT_r_req_backend(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- return (req->director);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return (ctx->req->director);
}
unsigned
-VRT_r_req_backend_healthy(const struct req *req)
+VRT_r_req_backend_healthy(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
/*
* XXX: Not optimal, but we do not have a backend in vcl_deliver
* XXX: and we have to return something.
*/
- if (req->director == NULL)
+ if (ctx->req->director == NULL)
return (0);
- CHECK_OBJ_NOTNULL(req->director, DIRECTOR_MAGIC);
- return (VDI_Healthy(req->director, req->digest));
+ CHECK_OBJ_NOTNULL(ctx->req->director, DIRECTOR_MAGIC);
+ return (VDI_Healthy(ctx->req->director, ctx->req->digest));
}
/*--------------------------------------------------------------------*/
@@ -321,51 +329,58 @@ VRT_r_bereq_backend_healthy(const struct vrt_ctx *ctx)
/*--------------------------------------------------------------------*/
void
-VRT_l_req_esi(struct req *req, unsigned process_esi)
+VRT_l_req_esi(const struct vrt_ctx *ctx, unsigned process_esi)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
/*
* Only allow you to turn of esi in the main request
* else everything gets confused
*/
- if(req->esi_level == 0)
- req->disable_esi = !process_esi;
+ if(ctx->req->esi_level == 0)
+ ctx->req->disable_esi = !process_esi;
}
unsigned
-VRT_r_req_esi(const struct req *req)
+VRT_r_req_esi(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- return (!req->disable_esi);
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return (!ctx->req->disable_esi);
}
long
-VRT_r_req_esi_level(const struct req *req)
+VRT_r_req_esi_level(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- return(req->esi_level);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return(ctx->req->esi_level);
}
/*--------------------------------------------------------------------*/
unsigned
-VRT_r_req_can_gzip(const struct req *req)
+VRT_r_req_can_gzip(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- return (RFC2616_Req_Gzip(req->http));
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return (RFC2616_Req_Gzip(ctx->req->http)); // XXX ?
}
/*--------------------------------------------------------------------*/
long
-VRT_r_req_restarts(const struct req *req)
+VRT_r_req_restarts(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- return (req->restarts);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return (ctx->req->restarts);
}
/*--------------------------------------------------------------------
@@ -437,15 +452,17 @@ VRT_DO_EXP(beresp, ctx->bo->exp, keep, 0,
*/
const char *
-VRT_r_req_xid(const struct req *req)
+VRT_r_req_xid(const struct vrt_ctx *ctx)
{
char *p;
int size;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
- size = snprintf(NULL, 0, "%u", req->vsl->wid & VSL_IDENTMASK) + 1;
- AN(p = WS_Alloc(req->http->ws, size));
- assert(snprintf(p, size, "%u", req->vsl->wid & VSL_IDENTMASK) < size);
+ // XXX ?
+ size = snprintf(NULL, 0, "%u", ctx->req->vsl->wid & VSL_IDENTMASK) + 1;
+ AN(p = WS_Alloc(ctx->req->http->ws, size));
+ assert(snprintf(p, size, "%u", ctx->req->vsl->wid & VSL_IDENTMASK) < size);
return (p);
}
@@ -453,19 +470,21 @@ VRT_r_req_xid(const struct req *req)
#define REQ_BOOL(hash_var) \
void \
-VRT_l_req_##hash_var(struct req *req, unsigned val) \
+VRT_l_req_##hash_var(const struct vrt_ctx *ctx, unsigned val) \
{ \
\
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC); \
- req->hash_var = val ? 1 : 0; \
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); \
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC); \
+ ctx->req->hash_var = val ? 1 : 0; \
} \
\
unsigned \
-VRT_r_req_##hash_var(const struct req *req) \
+VRT_r_req_##hash_var(const struct vrt_ctx *ctx) \
{ \
\
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC); \
- return(req->hash_var); \
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); \
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC); \
+ return(ctx->req->hash_var); \
}
REQ_BOOL(hash_ignore_busy)
@@ -474,33 +493,36 @@ REQ_BOOL(hash_always_miss)
/*--------------------------------------------------------------------*/
struct sockaddr_storage *
-VRT_r_client_ip(const struct req *req)
+VRT_r_client_ip(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- return (&req->sp->sockaddr);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ return (&ctx->req->sp->sockaddr);
}
struct sockaddr_storage *
-VRT_r_server_ip(const struct req *req)
+VRT_r_server_ip(const struct vrt_ctx *ctx)
{
int i;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- if (req->sp->mysockaddr.ss_family == AF_UNSPEC) {
- i = getsockname(req->sp->fd,
- (void*)&req->sp->mysockaddr, &req->sp->mysockaddrlen);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ if (ctx->req->sp->mysockaddr.ss_family == AF_UNSPEC) {
+ i = getsockname(ctx->req->sp->fd,
+ (void*)&ctx->req->sp->mysockaddr,
+ &ctx->req->sp->mysockaddrlen);
assert(VTCP_Check(i));
}
- return (&req->sp->mysockaddr);
+ return (&ctx->req->sp->mysockaddr);
}
const char*
-VRT_r_server_identity(const struct req *req)
+VRT_r_server_identity(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (heritage.identity[0] != '\0')
return (heritage.identity);
else
@@ -508,10 +530,10 @@ VRT_r_server_identity(const struct req *req)
}
const char*
-VRT_r_server_hostname(const struct req *req)
+VRT_r_server_hostname(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
if (vrt_hostname[0] == '\0')
AZ(gethostname(vrt_hostname, sizeof(vrt_hostname)));
return (vrt_hostname);
@@ -522,43 +544,49 @@ VRT_r_server_hostname(const struct req *req)
*/
long
-VRT_r_server_port(const struct req *req)
+VRT_r_server_port(const struct vrt_ctx *ctx)
{
int i;
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- if (req->sp->mysockaddr.ss_family == AF_UNSPEC) {
- i = getsockname(req->sp->fd,
- (void*)&req->sp->mysockaddr, &req->sp->mysockaddrlen);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ if (ctx->req->sp->mysockaddr.ss_family == AF_UNSPEC) {
+ i = getsockname(ctx->req->sp->fd,
+ (void*)&ctx->req->sp->mysockaddr,
+ &ctx->req->sp->mysockaddrlen);
assert(VTCP_Check(i));
}
- return (VTCP_port(&req->sp->mysockaddr));
+ return (VTCP_port(&ctx->req->sp->mysockaddr));
}
/*--------------------------------------------------------------------*/
long
-VRT_r_obj_hits(const struct req *req)
+VRT_r_obj_hits(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->obj, OBJECT_MAGIC); /* XXX */
- return (req->obj->hits);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req->obj, OBJECT_MAGIC); /* XXX */
+ return (ctx->req->obj->hits);
}
double
-VRT_r_obj_lastuse(const struct req *req)
+VRT_r_obj_lastuse(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->obj, OBJECT_MAGIC); /* XXX */
- return (VTIM_real() - req->obj->last_use);
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req->obj, OBJECT_MAGIC); /* XXX */
+ return (VTIM_real() - ctx->req->obj->last_use);
}
unsigned
-VRT_r_obj_uncacheable(const struct req *req)
+VRT_r_obj_uncacheable(const struct vrt_ctx *ctx)
{
- CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
- CHECK_OBJ_NOTNULL(req->obj, OBJECT_MAGIC);
- return (req->obj->objcore->flags & OC_F_PASS ? 1 : 0);
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(ctx->req->obj, OBJECT_MAGIC);
+ return (ctx->req->obj->objcore->flags & OC_F_PASS ? 1 : 0);
}
diff --git a/lib/libvcl/generate.py b/lib/libvcl/generate.py
index d4b53fd..254a3cc 100755
--- a/lib/libvcl/generate.py
+++ b/lib/libvcl/generate.py
@@ -105,397 +105,331 @@ sp_variables = (
'IP',
( 'both',),
( ),
- 'R'
),
('client.identity',
'STRING',
( 'both',),
( 'both',),
- 'R'
),
('server.ip',
'IP',
( 'client',),
( ),
- 'R'
),
('server.hostname',
'STRING',
( 'client',),
( ),
- 'R'
),
('server.identity',
'STRING',
( 'client',),
( ),
- 'R'
),
('server.port',
'INT',
( 'client',),
( ),
- 'R'
),
('req.method',
'STRING',
( 'client',),
( 'client',),
- 'C'
),
('req.request',
'STRING',
( 'client',),
( 'client',),
- 'C'
),
('req.url',
'STRING',
( 'client',),
( 'client',),
- 'C'
),
('req.proto',
'STRING',
( 'client',),
( 'client',),
- 'C'
),
('req.http.',
'HEADER',
( 'client',),
( 'client',),
- 'C'
),
('req.restarts',
'INT',
( 'client',),
( ),
- 'cR'
),
('req.esi_level',
'INT',
( 'client',),
( ),
- 'cR'
),
('req.ttl',
'DURATION',
( 'client',),
( 'client',),
- 'C'
),
('req.grace',
'DURATION',
( 'client',),
( 'client',),
- 'C'
),
('req.keep',
'DURATION',
( 'client',),
( 'client',),
- 'C'
),
('req.xid',
'STRING',
( 'client',),
( ),
- 'R'
),
('req.esi',
'BOOL',
( 'recv', 'backend_response', 'deliver', 'error',),
( 'recv', 'backend_response', 'deliver', 'error',),
- 'R'
),
('req.can_gzip',
'BOOL',
( 'client',),
( ),
- 'R'
),
('req.backend',
'BACKEND',
( 'client',),
( 'client',),
- 'R'
),
('req.backend.healthy',
'BOOL',
( 'client',),
( ),
- 'R'
),
('req.hash_ignore_busy',
'BOOL',
( 'recv',),
( 'recv',),
- 'R'
),
('req.hash_always_miss',
'BOOL',
( 'recv',),
( 'recv',),
- 'R'
),
('bereq.backend',
'BACKEND',
( 'backend', ),
( 'backend', ),
- 'C'
),
('bereq.backend.healthy',
'BOOL',
( 'backend', ),
( ),
- 'C'
),
('bereq.method',
'STRING',
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
- 'C'
),
('bereq.request',
'STRING',
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
- 'C'
),
('bereq.url',
'STRING',
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
- 'C'
),
('bereq.proto',
'STRING',
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
- 'C'
),
('bereq.http.',
'HEADER',
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
( 'pipe', 'backend_fetch', 'pass', 'miss', 'backend_response',),
- 'C'
),
('bereq.connect_timeout',
'DURATION',
( 'pipe', 'backend_fetch', 'pass', 'miss',),
( 'pipe', 'backend_fetch', 'pass', 'miss',),
- 'C'
),
('bereq.first_byte_timeout',
'DURATION',
( 'backend_fetch', 'pass', 'miss',),
( 'backend_fetch', 'pass', 'miss',),
- 'C'
),
('bereq.between_bytes_timeout',
'DURATION',
( 'backend_fetch', 'pass', 'miss',),
( 'backend_fetch', 'pass', 'miss',),
- 'C'
),
('beresp.proto',
'STRING',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.saintmode',
'DURATION',
( ),
( 'backend_response',),
- 'C'
),
('beresp.status',
'INT',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.response',
'STRING',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.http.',
'HEADER',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.do_esi',
'BOOL',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.do_stream',
'BOOL',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.do_gzip',
'BOOL',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.do_gunzip',
'BOOL',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.do_pass',
'BOOL',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.uncacheable',
'BOOL',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.ttl',
'DURATION',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.grace',
'DURATION',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.keep',
'DURATION',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('beresp.backend.name',
'STRING',
( 'backend_response',),
( ),
- 'C'
),
('beresp.backend.ip',
'IP',
( 'backend_response',),
( ),
- 'C'
),
('beresp.backend.port',
'INT',
( 'backend_response',),
( ),
- 'C'
),
('beresp.storage',
'STRING',
( 'backend_response',),
( 'backend_response',),
- 'C'
),
('obj.proto',
'STRING',
( 'lookup', 'error',),
( 'lookup', 'error',),
- 'C'
),
('obj.status',
'INT',
( 'error',),
( 'error',),
- 'C'
),
('obj.response',
'STRING',
( 'error',),
( 'error',),
- 'C'
),
('obj.hits',
'INT',
( 'lookup', 'deliver',),
( ),
- 'cR'
),
('obj.http.',
'HEADER',
( 'lookup', 'error',),
( 'error',), # XXX ?
- 'C'
),
('obj.ttl',
'DURATION',
( 'lookup', 'error',),
( 'lookup', 'error',),
- 'C'
),
('obj.grace',
'DURATION',
( 'lookup', 'error',),
( 'lookup', 'error',),
- 'C'
),
('obj.keep',
'DURATION',
( 'lookup', 'error',),
( 'lookup', 'error',),
- 'C'
),
('obj.lastuse',
'DURATION',
( 'lookup', 'deliver', 'error',),
( ),
- 'cR'
),
('obj.uncacheable',
'BOOL',
( 'lookup', 'deliver', 'error',),
( ),
- 'cR'
),
('resp.proto',
'STRING',
( 'deliver',),
( 'deliver',),
- 'C'
),
('resp.status',
'INT',
( 'deliver',),
( 'deliver',),
- 'C'
),
('resp.response',
'STRING',
( 'deliver',),
( 'deliver',),
- 'C'
),
('resp.http.',
'HEADER',
( 'deliver',),
( 'deliver',),
- 'C'
),
('now',
'TIME',
( 'all',),
( ),
- ''
),
)
@@ -875,45 +809,6 @@ fo.write("""
const struct var vcc_vars[] = {
""")
-def mk_proto(c, r=False):
- if c == "":
- return "void"
- s = ""
- for i in c:
- if i == "c" and not r:
- s += " const"
- elif i == "c":
- pass
- elif i == "C":
- s += " const struct vrt_ctx *"
- elif i == "R":
- if r:
- s += " const"
- s += " struct req *"
- else:
- print("Unknown args-spec char '%s'" % i)
- exit(1)
- return s[1:]
-
-
-def mk_args(c, r=False):
- if c == "":
- return ""
- s = ""
- for i in c:
- if i == "c":
- continue;
- elif i == "R":
- s += "req"
- elif i == "C":
- s += "ctx"
- else:
- print("Unknown args-spec char '%s'" % i)
- exit(1)
- if s != "" and not r:
- s += ","
- return s
-
for i in sp_variables:
typ = i[1]
cnam = i[0].replace(".", "_")
@@ -928,10 +823,8 @@ for i in sp_variables:
fo.write(i[0].split(".")[0].upper())
fo.write('",\n')
else:
- fo.write('\t "VRT_r_%s(%s)",\n' %
- (cnam, mk_args(i[4], True)))
- fh.write(ctyp + " VRT_r_%s(%s);\n" %
- (cnam, mk_proto(i[4], True)))
+ fo.write('\t "VRT_r_%s(ctx)",\n' % cnam)
+ fh.write(ctyp + " VRT_r_%s(const struct vrt_ctx *);\n" % cnam )
restrict(fo, i[2])
if len(i[3]) == 0:
@@ -941,9 +834,8 @@ for i in sp_variables:
fo.write(i[0].split(".")[0].upper())
fo.write('",\n')
else:
- fo.write('\t "VRT_l_%s(%s",\n' %
- (cnam, mk_args(i[4], False)))
- fh.write("void VRT_l_%s(%s, " % (cnam, mk_proto(i[4], False)))
+ fo.write('\t "VRT_l_%s(ctx, ",\n' % cnam)
+ fh.write("void VRT_l_%s(const struct vrt_ctx *, " % cnam)
if typ != "STRING":
fh.write(ctyp + ");\n")
else:
diff --git a/lib/libvcl/vcc_compile.c b/lib/libvcl/vcc_compile.c
index 4520b00..bf992e2 100644
--- a/lib/libvcl/vcc_compile.c
+++ b/lib/libvcl/vcc_compile.c
@@ -695,7 +695,7 @@ vcc_CompileSource(const struct vcc *tl0, struct vsb *sb, struct source *sp)
Fc(tl, 1,
"VGC_function_%s(const struct vrt_ctx *ctx,"
" struct worker *wrk,"
- " struct req *req, struct busyobj *bo)\n",
+ " struct req *req)\n",
method_tab[i].name);
AZ(VSB_finish(tl->fm[i]));
Fc(tl, 1, "{\n");
More information about the varnish-commit
mailing list