Commit f5b92e27 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Make VDP_DeliverObj() return a simple int status code

parent 6e29a151
...@@ -114,10 +114,11 @@ VDP_close(struct req *req) ...@@ -114,10 +114,11 @@ VDP_close(struct req *req)
/*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
enum objiter_status int
VDP_DeliverObj(struct req *req) VDP_DeliverObj(struct req *req)
{ {
enum objiter_status ois; enum objiter_status ois;
int err = 0;
ssize_t len; ssize_t len;
void *oi; void *oi;
void *ptr; void *ptr;
...@@ -134,6 +135,7 @@ VDP_DeliverObj(struct req *req) ...@@ -134,6 +135,7 @@ VDP_DeliverObj(struct req *req)
AZ(len); AZ(len);
break; break;
case OIS_ERROR: case OIS_ERROR:
err = -1;
break; break;
case OIS_DATA: case OIS_DATA:
case OIS_STREAM: case OIS_STREAM:
...@@ -147,5 +149,5 @@ VDP_DeliverObj(struct req *req) ...@@ -147,5 +149,5 @@ VDP_DeliverObj(struct req *req)
} while (ois == OIS_DATA || ois == OIS_STREAM); } while (ois == OIS_DATA || ois == OIS_STREAM);
(void)VDP_bytes(req, VDP_FLUSH, NULL, 0); (void)VDP_bytes(req, VDP_FLUSH, NULL, 0);
ObjIterEnd(req->objcore, &oi); ObjIterEnd(req->objcore, &oi);
return (ois); return (err);
} }
...@@ -108,7 +108,7 @@ struct vdp_entry { ...@@ -108,7 +108,7 @@ struct vdp_entry {
int VDP_bytes(struct req *, enum vdp_action act, const void *ptr, ssize_t len); int VDP_bytes(struct req *, enum vdp_action act, const void *ptr, ssize_t len);
void VDP_push(struct req *, vdp_bytes *func, void *priv, int bottom); void VDP_push(struct req *, vdp_bytes *func, void *priv, int bottom);
void VDP_close(struct req *req); void VDP_close(struct req *req);
enum objiter_status VDP_DeliverObj(struct req *req); int VDP_DeliverObj(struct req *req);
vdp_bytes VDP_gunzip; vdp_bytes VDP_gunzip;
vdp_bytes VDP_ESI; vdp_bytes VDP_ESI;
...@@ -81,7 +81,7 @@ v1d_error(struct req *req, const char *msg) ...@@ -81,7 +81,7 @@ v1d_error(struct req *req, const char *msg)
void __match_proto__(vtr_deliver_f) void __match_proto__(vtr_deliver_f)
V1D_Deliver(struct req *req, struct busyobj *bo, int sendbody) V1D_Deliver(struct req *req, struct busyobj *bo, int sendbody)
{ {
enum objiter_status ois; int err = 0;
CHECK_OBJ_NOTNULL(req, REQ_MAGIC); CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
CHECK_OBJ_ORNULL(bo, BUSYOBJ_MAGIC); CHECK_OBJ_ORNULL(bo, BUSYOBJ_MAGIC);
...@@ -125,16 +125,15 @@ V1D_Deliver(struct req *req, struct busyobj *bo, int sendbody) ...@@ -125,16 +125,15 @@ V1D_Deliver(struct req *req, struct busyobj *bo, int sendbody)
if (DO_DEBUG(DBG_FLUSH_HEAD)) if (DO_DEBUG(DBG_FLUSH_HEAD))
(void)V1L_Flush(req->wrk); (void)V1L_Flush(req->wrk);
ois = OIS_DONE;
if (sendbody && req->resp_len != 0) { if (sendbody && req->resp_len != 0) {
if (req->res_mode & RES_CHUNKED) if (req->res_mode & RES_CHUNKED)
V1L_Chunked(req->wrk); V1L_Chunked(req->wrk);
ois = VDP_DeliverObj(req); err = VDP_DeliverObj(req);
if (ois == OIS_DONE && (req->res_mode & RES_CHUNKED)) if (!err && (req->res_mode & RES_CHUNKED))
V1L_EndChunk(req->wrk); V1L_EndChunk(req->wrk);
} }
if ((V1L_FlushRelease(req->wrk) || ois != OIS_DONE) && req->sp->fd >= 0) if ((V1L_FlushRelease(req->wrk) || err) && req->sp->fd >= 0)
SES_Close(req->sp, SC_REM_CLOSE); SES_Close(req->sp, SC_REM_CLOSE);
AZ(req->wrk->v1l); AZ(req->wrk->v1l);
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