Commit acab05e0 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

More VRT sp->req movements

parent 56ce6e35
......@@ -83,10 +83,10 @@ VRT_count(struct req *req, unsigned u)
/*--------------------------------------------------------------------*/
void
VRT_acl_log(const struct sess *sp, const char *msg)
VRT_acl_log(struct req *req, const char *msg)
{
VSLb(sp->req->vsl, SLT_VCL_acl, "%s", msg);
VSLb(req->vsl, SLT_VCL_acl, "%s", msg);
}
/*--------------------------------------------------------------------*/
......@@ -385,13 +385,14 @@ VRT_Rollback(const struct sess *sp)
/*--------------------------------------------------------------------*/
void
VRT_panic(const struct sess *sp, const char *str, ...)
VRT_panic(struct req *req, const char *str, ...)
{
va_list ap;
char *b;
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);
}
......
......@@ -62,11 +62,12 @@ VRT_re_fini(void *rep)
}
int
VRT_re_match(const struct sess *sp, const char *s, void *re)
VRT_re_match(struct req *req, const char *s, void *re)
{
vre_t *t;
int i;
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
if (s == NULL)
s = "";
AN(re);
......@@ -75,13 +76,12 @@ VRT_re_match(const struct sess *sp, const char *s, void *re)
if (i >= 0)
return (1);
if (i < VRE_ERROR_NOMATCH )
VSLb(sp->req->vsl, SLT_VCL_Error,
"Regexp matching returned %d", i);
VSLb(req->vsl, SLT_VCL_Error, "Regexp matching returned %d", i);
return (0);
}
const char *
VRT_regsub(const struct sess *sp, int all, const char *str, void *re,
VRT_regsub(struct req *req, int all, const char *str, void *re,
const char *sub)
{
int ovector[30];
......@@ -94,6 +94,7 @@ VRT_regsub(const struct sess *sp, int all, const char *str, void *re,
int options = 0;
size_t len;
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
AN(re);
if (str == NULL)
str = "";
......@@ -109,13 +110,12 @@ VRT_regsub(const struct sess *sp, int all, const char *str, void *re,
if (i == VRE_ERROR_NOMATCH)
return(str);
if (i < VRE_ERROR_NOMATCH ) {
VSLb(sp->req->vsl, SLT_VCL_Error,
"Regexp matching returned %d", i);
VSLb(req->vsl, SLT_VCL_Error, "Regexp matching returned %d", i);
return(str);
}
u = WS_Reserve(sp->req->http->ws, 0);
res.e = res.b = b0 = sp->req->http->ws->f;
u = WS_Reserve(req->http->ws, 0);
res.e = res.b = b0 = req->http->ws->f;
res.e += u;
do {
......@@ -147,8 +147,8 @@ VRT_regsub(const struct sess *sp, 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(sp->req->http->ws, 0);
VSLb(sp->req->vsl, SLT_VCL_Error,
WS_Release(req->http->ws, 0);
VSLb(req->vsl, SLT_VCL_Error,
"Regexp matching returned %d", i);
return(str);
}
......@@ -157,10 +157,10 @@ VRT_regsub(const struct sess *sp, int all, const char *str, void *re,
/* Copy suffix to match */
Tadd(&res, str, len+1);
if (res.b >= res.e) {
WS_Release(sp->req->http->ws, 0);
WS_Release(req->http->ws, 0);
return (str);
}
Tcheck(res);
WS_ReleaseP(sp->req->http->ws, res.b);
WS_ReleaseP(req->http->ws, res.b);
return (b0);
}
......@@ -141,16 +141,16 @@ struct vrt_ref {
/* ACL related */
#define VRT_ACL_MAXADDR 16 /* max(IPv4, IPv6) */
void VRT_acl_log(const struct sess *, const char *msg);
void VRT_acl_log(struct req *, const char *msg);
/* Regexp related */
void VRT_re_init(void **, const char *);
void VRT_re_fini(void *);
int VRT_re_match(const struct sess *sp, const char *, void *re);
const char *VRT_regsub(const struct sess *sp, int all, const char *,
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_panic(const struct sess *sp, const char *, ...);
void VRT_panic(struct req *req, 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);
......
......@@ -357,7 +357,7 @@ vcc_acl_emit(const struct vcc *tl, const char *acln, int anon)
const char *oc;
Fh(tl, 0, "\nstatic int\n");
Fh(tl, 0, "match_acl_%s_%s(const struct sess *sp, const void *p)\n",
Fh(tl, 0, "match_acl_%s_%s(struct req *req, const void *p)\n",
anon ? "anon" : "named", acln);
Fh(tl, 0, "{\n");
Fh(tl, 0, "\tconst unsigned char *a;\n");
......@@ -372,7 +372,7 @@ vcc_acl_emit(const struct vcc *tl, const char *acln, int anon)
Fh(tl, 0, "\telse if (fam == %d)\n", PF_INET6);
Fh(tl, 0, "\t\ta += %zd;\n", offsetof(struct sockaddr_in6, sin6_addr));
Fh(tl, 0, "\telse {\n");
Fh(tl, 0, "\t\tVRT_acl_log(sp, \"NO_FAM %s\");\n", acln);
Fh(tl, 0, "\t\tVRT_acl_log(req, \"NO_FAM %s\");\n", acln);
Fh(tl, 0, "\t\treturn(0);\n");
Fh(tl, 0, "\t}\n\n");
depth = -1;
......@@ -424,7 +424,7 @@ vcc_acl_emit(const struct vcc *tl, const char *acln, int anon)
i = (ae->mask + 7) / 8;
if (!anon) {
Fh(tl, 0, "\t%*sVRT_acl_log(sp, \"%sMATCH %s \" ",
Fh(tl, 0, "\t%*sVRT_acl_log(req, \"%sMATCH %s \" ",
-i, "", ae->not ? "NEG_" : "", acln);
EncToken(tl->fh, ae->t_addr);
if (ae->t_mask != NULL)
......@@ -441,7 +441,7 @@ vcc_acl_emit(const struct vcc *tl, const char *acln, int anon)
/* Deny by default */
if (!anon)
Fh(tl, 0, "\tVRT_acl_log(sp, \"NO_MATCH %s\");\n", acln);
Fh(tl, 0, "\tVRT_acl_log(req, \"NO_MATCH %s\");\n", acln);
Fh(tl, 0, "\treturn (0);\n}\n");
}
......@@ -457,7 +457,7 @@ vcc_Acl_Hack(struct vcc *tl, char *b)
bprintf(acln, "%u", tl->unique++);
vcc_acl_entry(tl);
vcc_acl_emit(tl, acln, 1);
sprintf(b, "%smatch_acl_anon_%s(sp, \v1)",
sprintf(b, "%smatch_acl_anon_%s(req, \v1)",
(tcond == T_NEQ ? "!" : ""), acln);
}
......
......@@ -238,7 +238,7 @@ parse_panic(struct vcc *tl)
{
vcc_NextToken(tl);
Fb(tl, 1, "VRT_panic(sp, ");
Fb(tl, 1, "VRT_panic(req, ");
vcc_Expr(tl, STRING);
ERRCHK(tl);
Fb(tl, 0, ", vrt_magic_string_end);\n");
......
......@@ -466,7 +466,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(sp, %d,\n\v1,\n%s\n", all, p);
bprintf(buf, "VRT_regsub(req, %d,\n\v1,\n%s\n", all, p);
*e = vcc_expr_edit(STRING, buf, e2, *e);
SkipToken(tl, ',');
......@@ -947,7 +947,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(sp, \v1, %s)", not, re);
bprintf(buf, "%sVRT_re_match(req, \v1, %s)", not, re);
*e = vcc_expr_edit(BOOL, buf, *e, NULL);
return;
}
......@@ -957,7 +957,8 @@ vcc_expr_cmp(struct vcc *tl, struct expr **e, enum var_type fmt)
vcc_NextToken(tl);
ExpectErr(tl, ID);
vcc_AddRef(tl, tl->t, SYM_ACL);
bprintf(buf, "%smatch_acl_named_%.*s(sp, \v1)", not, PF(tl->t));
bprintf(buf, "%smatch_acl_named_%.*s(req, \v1)",
not, PF(tl->t));
vcc_NextToken(tl);
*e = vcc_expr_edit(BOOL, buf, *e, NULL);
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment