[master] a90a35f Set OA_LEN or req.body oc and dont iterate it if zero.

Poul-Henning Kamp phk at FreeBSD.org
Sat Mar 12 01:29:04 CET 2016


commit a90a35f598e666a4ee69cfbe1aa01d36d3eeddec
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Fri Mar 11 23:16:16 2016 +0000

    Set OA_LEN or req.body oc and dont iterate it if zero.

diff --git a/bin/varnishd/cache/cache_req_body.c b/bin/varnishd/cache/cache_req_body.c
index e8f7bf9..1986ffd 100644
--- a/bin/varnishd/cache/cache_req_body.c
+++ b/bin/varnishd/cache/cache_req_body.c
@@ -118,6 +118,7 @@ vrb_pull(struct req *req, ssize_t maxsize, objiterate_f *func, void *priv)
 	}
 
 	ObjTrimStore(req->wrk, req->body_oc);
+	AZ(ObjSetU64(req->wrk, req->body_oc, OA_LEN, req->req_bodybytes));
 	HSH_DerefBoc(req->wrk, req->body_oc);
 
 	if (vfps != VFP_END) {
@@ -163,8 +164,8 @@ VRB_Iterate(struct req *req, objiterate_f *func, void *priv)
 
 	switch(req->req_body_status) {
 	case REQ_BODY_CACHED:
-
-		if (ObjIterate(req->wrk, req->body_oc, priv, func))
+		if (req->req_bodybytes > 0 &&
+		    ObjIterate(req->wrk, req->body_oc, priv, func))
 			return (-1);
 		return (0);
 	case REQ_BODY_NONE:



More information about the varnish-commit mailing list