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) ...@@ -152,20 +152,21 @@ RES_WriteObj(struct sess *sp)
unsigned u = 0; unsigned u = 0;
char lenbuf[20]; char lenbuf[20];
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
WRK_Reset(sp->wrk, &sp->fd); 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); 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)) { if (sp->wantbody && !VTAILQ_EMPTY(&sp->obj->esibits)) {
ESI_Deliver(sp); ESI_Deliver(sp);
} else if (sp->wantbody) { } 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) { VTAILQ_FOREACH(st, &sp->obj->store, list) {
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
...@@ -191,9 +192,9 @@ RES_WriteObj(struct sess *sp) ...@@ -191,9 +192,9 @@ RES_WriteObj(struct sess *sp)
WRK_Write(sp->wrk, st->ptr, st->len); WRK_Write(sp->wrk, st->ptr, st->len);
} }
assert(u == sp->obj->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)) if (WRK_Flush(sp->wrk))
vca_close_session(sp, "remote closed"); vca_close_session(sp, "remote closed");
} }
...@@ -605,7 +605,8 @@ ESI_Deliver(struct sess *sp) ...@@ -605,7 +605,8 @@ ESI_Deliver(struct sess *sp)
sp->obj = obj; 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