From 9118f7b5a29655e5dd1b07c680d0fbaa6df16322 Mon Sep 17 00:00:00 2001
From: Dag Haavi Finstad <daghf@varnish-software.com>
Date: Mon, 2 Jul 2012 09:50:30 +0200
Subject: [PATCH] Fix for an issue where varnishlog reports an incorrect
 "Length" entry on gunzipped delivery

---
 bin/varnishd/cache/cache.h      |    2 +-
 bin/varnishd/cache/cache_gzip.c |    4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 1d991f1..a234a12 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -799,7 +799,7 @@ void VGZ_UpdateObj(const struct vgz*, struct object *);
 int VGZ_WrwInit(struct vgz *vg);
 int VGZ_WrwGunzip(struct worker *w, struct vgz *, const void *ibuf,
     ssize_t ibufl);
-void VGZ_WrwFlush(const struct worker *wrk, struct vgz *vg);
+void VGZ_WrwFlush(struct worker *wrk, struct vgz *vg);
 
 /* Return values */
 #define VGZ_ERROR	-1
diff --git a/bin/varnishd/cache/cache_gzip.c b/bin/varnishd/cache/cache_gzip.c
index 9078834..1ebabb0 100644
--- a/bin/varnishd/cache/cache_gzip.c
+++ b/bin/varnishd/cache/cache_gzip.c
@@ -355,13 +355,15 @@ VGZ_WrwGunzip(struct worker *wrk, struct vgz *vg, const void *ibuf,
 /*--------------------------------------------------------------------*/
 
 void
-VGZ_WrwFlush(const struct worker *wrk, struct vgz *vg)
+VGZ_WrwFlush(struct worker *wrk, struct vgz *vg)
 {
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
 
 	if (vg->m_len ==  0)
 		return;
+
+	wrk->acct_tmp.bodybytes += vg->m_len;
 	(void)WRW_Write(wrk, vg->m_buf, vg->m_len);
 	(void)WRW_Flush(wrk);
 	vg->m_len = 0;
-- 
1.7.9.5

