r2274 - trunk/varnish-cache/bin/varnishd
phk at projects.linpro.no
phk at projects.linpro.no
Tue Nov 20 17:43:09 CET 2007
Author: phk
Date: 2007-11-20 17:43:09 +0100 (Tue, 20 Nov 2007)
New Revision: 2274
Modified:
trunk/varnish-cache/bin/varnishd/cache_vrt_esi.c
Log:
Pass a txt instead of the raw storage into the esi_parser
Modified: trunk/varnish-cache/bin/varnishd/cache_vrt_esi.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_vrt_esi.c 2007-11-20 16:30:23 UTC (rev 2273)
+++ trunk/varnish-cache/bin/varnishd/cache_vrt_esi.c 2007-11-20 16:43:09 UTC (rev 2274)
@@ -71,7 +71,7 @@
struct esi_work {
struct sess *sp;
size_t off;
- struct storage *st;
+ txt t;
txt dst;
struct esi_bit *eb;
struct esi_bit *ebl; /* list of */
@@ -93,14 +93,13 @@
txt t;
if (i == 0)
- i = p - ((char *)ew->st->ptr + ew->st->len);
+ i = p - ew->t.b;
if (i > 20) {
i = 20;
ellipsis = 1;
}
q = buf;
- q += sprintf(buf, "at %zd: %s \"",
- ew->off + (p - (char*)ew->st->ptr), err);
+ q += sprintf(buf, "at %zd: %s \"", ew->off + (p - ew->t.b), err);
while (i > 0) {
if (*p >= ' ' && *p <= '~') {
*q++ = *p;
@@ -347,8 +346,7 @@
int celem; /* closing element */
int i;
- t.b = (char *)ew->st->ptr;
- t.e = t.b + ew->st->len;
+ t = ew->t;
ew->dst.b = t.b;
ew->dst.e = t.b;
o.b = t.b;
@@ -574,7 +572,8 @@
ew->off = 1;
VTAILQ_FOREACH(st, &sp->obj->store, list) {
- ew->st = st;
+ ew->t.b = (void *)st->ptr;
+ ew->t.e = ew->t.b + st->len;
i = esi_parse(ew);
ew->off += st->len;
if (i < st->len) {
More information about the varnish-commit
mailing list