Commit 52b1dcc9 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Don't mess up the chunked encoding for nested esi:include


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@2172 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 8e01d1a9
......@@ -152,20 +152,21 @@ RES_WriteObj(struct sess *sp)
unsigned u = 0;
char lenbuf[20];
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
WRK_Reset(sp->wrk, &sp->fd);
if (sp->esis == 0) {
if (sp->esis == 0)
sp->wrk->acct.hdrbytes += http_Write(sp->wrk, sp->http, 1);
} else {
sprintf(lenbuf, "%x\r\n", sp->obj->len);
sp->wrk->acct.hdrbytes += WRK_Write(sp->wrk, lenbuf, -1);
}
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
if (sp->wantbody && !VTAILQ_EMPTY(&sp->obj->esibits)) {
ESI_Deliver(sp);
} else if (sp->wantbody) {
if (sp->esis > 0) {
sprintf(lenbuf, "%x\r\n", sp->obj->len);
sp->wrk->acct.hdrbytes +=
WRK_Write(sp->wrk, lenbuf, -1);
}
VTAILQ_FOREACH(st, &sp->obj->store, list) {
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
......@@ -191,9 +192,9 @@ RES_WriteObj(struct sess *sp)
WRK_Write(sp->wrk, st->ptr, st->len);
}
assert(u == sp->obj->len);
if (sp->esis > 0)
WRK_Write(sp->wrk, "\r\n", -1);
}
if (sp->esis > 0)
WRK_Write(sp->wrk, "\r\n", -1);
if (WRK_Flush(sp->wrk))
vca_close_session(sp, "remote closed");
}
......@@ -605,7 +605,8 @@ ESI_Deliver(struct sess *sp)
sp->obj = obj;
}
WRK_Write(sp->wrk, "0\r\n", -1);
if (sp->esis == 0)
WRK_Write(sp->wrk, "0\r\n", -1);
}
/*--------------------------------------------------------------------*/
......
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