[master] acd718f Only grab the first matched fragment in varnishncsa
Martin Blix Grydeland
martin at varnish-software.com
Mon Apr 7 14:03:13 CEST 2014
commit acd718f04215a8ca0cca4cd0d7997aceaf73c5a9
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date: Mon Apr 7 14:02:35 2014 +0200
Only grab the first matched fragment in varnishncsa
Fixes: #1462
diff --git a/bin/varnishncsa/varnishncsa.c b/bin/varnishncsa/varnishncsa.c
index 7a47b1b..e3f2432 100644
--- a/bin/varnishncsa/varnishncsa.c
+++ b/bin/varnishncsa/varnishncsa.c
@@ -682,9 +682,12 @@ frag_fields(const char *b, const char *e, ...)
q++;
if (field == n) {
- frag->gen = CTX.gen;
- frag->b = p;
- frag->e = q;
+ if (frag->gen != CTX.gen) {
+ /* We only grab the same matching field once */
+ frag->gen = CTX.gen;
+ frag->b = p;
+ frag->e = q;
+ }
field = va_arg(ap, int);
if (field == 0)
break;
@@ -698,6 +701,10 @@ static void
frag_line(const char *b, const char *e, struct fragment *f)
{
+ if (f->gen == CTX.gen)
+ /* We only grab the same matching record once */
+ return;
+
/* Skip leading space */
while (b < e && isspace(*b))
++b;
More information about the varnish-commit
mailing list