Edenhill has uploaded a new change for review.
https://gerrit.wikimedia.org/r/98135
Change subject: Added %{VCL_Log:key}x support
......................................................................
Added %{VCL_Log:key}x support
Change-Id: I1af3bf3399e13340b8afde3fe21fdc4f43718ddf
---
M varnishkafka.c
1 file changed, 44 insertions(+), 7 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/operations/software/varnish/varnishkafka
refs/changes/35/98135/1
diff --git a/varnishkafka.c b/varnishkafka.c
index 6fa1c7e..0032e13 100644
--- a/varnishkafka.c
+++ b/varnishkafka.c
@@ -946,6 +946,8 @@
{ VSL_S_CLIENT, SLT_VCL_call,
fmtvar: "Varnish:handling",
parser: parse_handling },
+ { VSL_S_CLIENT, SLT_VCL_Log,
+ fmtvar: "VCL_Log:*" },
} },
['n'] = { {
@@ -1148,14 +1150,49 @@
/* mapping has fmtvar specified, make sure it
* matches the format's variable. */
if (map[(int)*s].f[i].fmtvar) {
- if (!var ||
- strlen(map[(int)*s].f[i].fmtvar) != varlen||
- strncmp(map[(int)*s].f[i].fmtvar, var,
- varlen))
+ const char *iswc;
+
+ if (!var)
continue;
- /* fmtvar's resets the format var */
- var = NULL;
- varlen = 0;
+
+ /* Match "xxxx:<key>".
+ * If format definition's key is wildcarded
+ * ("*") then use the configured key as var.
+ * I.e., "%{VCL_Log:hit}x" will put "hit" in
+ * var since VCL_Log is defined as wildcard:
+ * "VCL_Log:*". */
+ if ((iswc = strstr(map[(int)*s].f[i].fmtvar,
+ ":*"))) {
+ /* Wildcard definition */
+ int fvlen = (int)(iswc -
+ map[(int)*s].
+ f[i].fmtvar) + 1;
+
+ /* Check that var matches prefix.
+ * I.e.: "VCL_Log:" cmp "VCL_Log:" */
+ if (varlen <= fvlen ||
+ strncmp(map[(int)*s].f[i].fmtvar,
+ var, fvlen))
+ continue;
+
+ /* set format var to "..:<key>" */
+ var = var + fvlen;
+ varlen -= fvlen;
+
+
+ } else {
+ /* Non-wildcard definition.
+ * Var must match exactly. */
+ if (varlen != strlen(map[(int)*s].
+ f[i].fmtvar) ||
+ strncmp(map[(int)*s].f[i].fmtvar,
+ var, varlen))
+ continue;
+
+ /* fmtvar's resets the format var */
+ var = NULL;
+ varlen = 0;
+ }
}
if (tag_add(fconf, &fconf->fmt[fmtid],
--
To view, visit https://gerrit.wikimedia.org/r/98135
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1af3bf3399e13340b8afde3fe21fdc4f43718ddf
Gerrit-PatchSet: 1
Gerrit-Project: operations/software/varnish/varnishkafka
Gerrit-Branch: master
Gerrit-Owner: Edenhill <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits