Commit 99fe0674 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Further untangling of the VDP stack

parent a86fd4f6
...@@ -156,8 +156,6 @@ ved_include(struct req *preq, const char *src, const char *host) ...@@ -156,8 +156,6 @@ ved_include(struct req *preq, const char *src, const char *host)
} }
AN(V1L_IsReleased(wrk)); AN(V1L_IsReleased(wrk));
VDP_close(req);
CNT_AcctLogCharge(wrk->stats, req); CNT_AcctLogCharge(wrk->stats, req);
VSL_End(req->vsl); VSL_End(req->vsl);
......
...@@ -345,14 +345,11 @@ V1D_Deliver(struct req *req, struct busyobj *bo) ...@@ -345,14 +345,11 @@ V1D_Deliver(struct req *req, struct busyobj *bo)
if (req->esi_level == 0 && req->res_mode & RES_GUNZIP) if (req->esi_level == 0 && req->res_mode & RES_GUNZIP)
VDP_push(req, VDP_gunzip, NULL); VDP_push(req, VDP_gunzip, NULL);
ESI_Deliver(req); ESI_Deliver(req);
if (req->esi_level == 0 && req->res_mode & RES_GUNZIP)
VDP_pop(req, VDP_gunzip);
} else if (req->res_mode & RES_ESI_CHILD) { } else if (req->res_mode & RES_ESI_CHILD) {
if (req->gzip_resp && if (req->gzip_resp &&
!ObjCheckFlag(req->wrk, req->objcore, OF_GZIPED)) { !ObjCheckFlag(req->wrk, req->objcore, OF_GZIPED)) {
VDP_push(req, VED_pretend_gzip, NULL); VDP_push(req, VED_pretend_gzip, NULL);
ois = v1d_WriteDirObj(req); ois = v1d_WriteDirObj(req);
VDP_pop(req, VED_pretend_gzip);
} else if (req->gzip_resp) { } else if (req->gzip_resp) {
if (bo != NULL) if (bo != NULL)
VBO_waitstate(bo, BOS_FINISHED); VBO_waitstate(bo, BOS_FINISHED);
...@@ -361,19 +358,16 @@ V1D_Deliver(struct req *req, struct busyobj *bo) ...@@ -361,19 +358,16 @@ V1D_Deliver(struct req *req, struct busyobj *bo)
ObjCheckFlag(req->wrk, req->objcore, OF_GZIPED)) { ObjCheckFlag(req->wrk, req->objcore, OF_GZIPED)) {
VDP_push(req, VDP_gunzip, NULL); VDP_push(req, VDP_gunzip, NULL);
ois = v1d_WriteDirObj(req); ois = v1d_WriteDirObj(req);
VDP_pop(req, VDP_gunzip);
} else { } else {
/* The toplevel will gunzip if needed */ /* The toplevel will gunzip if needed */
ois = v1d_WriteDirObj(req); ois = v1d_WriteDirObj(req);
} }
} else if ((req->res_mode & RES_GUNZIP) &&
ObjCheckFlag(req->wrk, req->objcore, OF_GZIPED)) {
VDP_push(req, VDP_gunzip, NULL);
ois = v1d_WriteDirObj(req);
VDP_pop(req, VDP_gunzip);
} else { } else {
if (req->res_mode & RES_GUNZIP)
VDP_push(req, VDP_gunzip, NULL);
ois = v1d_WriteDirObj(req); ois = v1d_WriteDirObj(req);
} }
(void)VDP_bytes(req, VDP_FLUSH, NULL, 0);
if (ois == OIS_DONE && if (ois == OIS_DONE &&
(req->res_mode & RES_CHUNKED) && (req->res_mode & RES_CHUNKED) &&
...@@ -383,6 +377,5 @@ V1D_Deliver(struct req *req, struct busyobj *bo) ...@@ -383,6 +377,5 @@ V1D_Deliver(struct req *req, struct busyobj *bo)
if ((V1L_FlushRelease(req->wrk) || ois != OIS_DONE) && if ((V1L_FlushRelease(req->wrk) || ois != OIS_DONE) &&
req->sp->fd >= 0) req->sp->fd >= 0)
SES_Close(req->sp, SC_REM_CLOSE); SES_Close(req->sp, SC_REM_CLOSE);
if (req->esi_level == 0) VDP_close(req);
VDP_close(req);
} }
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