[experimental-ims] 2d49712 Change FetchError() to take busyobj as arg.
Geoff Simmons
geoff at varnish-cache.org
Tue Feb 14 17:49:35 CET 2012
commit 2d49712fb096255ae1178275c3a0a8c955142853
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Feb 14 11:00:54 2012 +0000
Change FetchError() to take busyobj as arg.
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 8ff3688..50d9541 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -757,8 +757,8 @@ int EXP_NukeOne(struct worker *w, struct lru *lru);
/* cache_fetch.c */
struct storage *FetchStorage(struct worker *w, ssize_t sz);
-int FetchError(const struct worker *w, const char *error);
-int FetchError2(const struct worker *w, const char *error, const char *more);
+int FetchError(struct busyobj *, const char *error);
+int FetchError2(struct busyobj *, const char *error, const char *more);
int FetchHdr(struct sess *sp, int need_host_hdr, int sendbody);
int FetchBody(struct worker *w, struct object *obj);
int FetchReqBody(const struct sess *sp, int sendbody);
diff --git a/bin/varnishd/cache/cache_esi_fetch.c b/bin/varnishd/cache/cache_esi_fetch.c
index 620082d..45bfa86 100644
--- a/bin/varnishd/cache/cache_esi_fetch.c
+++ b/bin/varnishd/cache/cache_esi_fetch.c
@@ -387,7 +387,7 @@ vfp_esi_end(struct worker *wrk)
retval = bo->fetch_failed;
if (bo->vgz_rx != NULL && VGZ_Destroy(&bo->vgz_rx, -1) != VGZ_END)
- retval = FetchError(wrk, "Gunzip+ESI Failed at the very end");
+ retval = FetchError(bo, "Gunzip+ESI Failed at the very end");
vsb = VEP_Finish(wrk);
@@ -402,7 +402,7 @@ vfp_esi_end(struct worker *wrk)
VSB_data(vsb), l);
bo->fetch_obj->esidata->len = l;
} else {
- retval = FetchError(wrk,
+ retval = FetchError(bo,
"Could not allocate storage for esidata");
}
}
@@ -415,7 +415,7 @@ vfp_esi_end(struct worker *wrk)
if (vef->vgz != NULL) {
VGZ_UpdateObj(vef->vgz, bo->fetch_obj);
if (VGZ_Destroy(&vef->vgz, -1) != VGZ_END)
- retval = FetchError(wrk,
+ retval = FetchError(bo,
"ESI+Gzip Failed at the very end");
}
if (vef->ibuf != NULL)
diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 8b94fd7..2924130 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -52,25 +52,24 @@ static unsigned fetchfrag;
*/
int
-FetchError2(const struct worker *wrk, const char *error, const char *more)
+FetchError2(struct busyobj *bo, const char *error, const char *more)
{
- CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
- if (!wrk->busyobj->fetch_failed) {
+ CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);
+ if (!bo->fetch_failed) {
if (more == NULL)
- VSLB(wrk->busyobj, SLT_FetchError, "%s", error);
+ VSLB(bo, SLT_FetchError, "%s", error);
else
- VSLB(wrk->busyobj, SLT_FetchError, "%s: %s", error,
- more);
+ VSLB(bo, SLT_FetchError, "%s: %s", error, more);
}
- wrk->busyobj->fetch_failed = 1;
+ bo->fetch_failed = 1;
return (-1);
}
int
-FetchError(const struct worker *wrk, const char *error)
+FetchError(struct busyobj *bo, const char *error)
{
- return(FetchError2(wrk, error, NULL));
+ return(FetchError2(bo, error, NULL));
}
/*--------------------------------------------------------------------
@@ -192,7 +191,7 @@ FetchStorage(struct worker *wrk, ssize_t sz)
l = cache_param->fetch_chunksize;
st = STV_alloc(wrk, l);
if (st == NULL) {
- (void)FetchError(wrk, "Could not get storage");
+ (void)FetchError(wrk->busyobj, "Could not get storage");
return (NULL);
}
AZ(st->len);
@@ -233,13 +232,13 @@ fetch_straight(struct worker *wrk, struct http_conn *htc, ssize_t cl)
assert(wrk->busyobj->body_status == BS_LENGTH);
if (cl < 0) {
- return (FetchError(wrk, "straight length field bogus"));
+ return (FetchError(wrk->busyobj, "straight length field bogus"));
} else if (cl == 0)
return (0);
i = wrk->busyobj->vfp->bytes(wrk, htc, cl);
if (i <= 0)
- return (FetchError(wrk, "straight insufficient bytes"));
+ return (FetchError(wrk->busyobj, "straight insufficient bytes"));
return (0);
}
@@ -266,7 +265,7 @@ fetch_chunked(struct worker *wrk, struct http_conn *htc)
} while (vct_islws(buf[0]));
if (!vct_ishex(buf[0]))
- return (FetchError(wrk,"chunked header non-hex"));
+ return (FetchError(wrk->busyobj, "chunked header non-hex"));
/* Collect hex digits, skipping leading zeros */
for (u = 1; u < sizeof buf; u++) {
@@ -279,7 +278,7 @@ fetch_chunked(struct worker *wrk, struct http_conn *htc)
}
if (u >= sizeof buf)
- return (FetchError(wrk,"chunked header too long"));
+ return (FetchError(wrk->busyobj,"chunked header too long"));
/* Skip trailing white space */
while(vct_islws(buf[u]) && buf[u] != '\n')
@@ -287,12 +286,12 @@ fetch_chunked(struct worker *wrk, struct http_conn *htc)
return (-1);
if (buf[u] != '\n')
- return (FetchError(wrk,"chunked header no NL"));
+ return (FetchError(wrk->busyobj,"chunked header no NL"));
buf[u] = '\0';
cl = fetch_number(buf, 16);
if (cl < 0)
- return (FetchError(wrk,"chunked header number syntax"));
+ return (FetchError(wrk->busyobj,"chunked header number syntax"));
if (cl > 0 && wrk->busyobj->vfp->bytes(wrk, htc, cl) <= 0)
return (-1);
@@ -303,7 +302,7 @@ fetch_chunked(struct worker *wrk, struct http_conn *htc)
if (buf[0] == '\r' && HTC_Read( htc, buf, 1) <= 0)
return (-1);
if (buf[0] != '\n')
- return (FetchError(wrk,"chunked tail no NL"));
+ return (FetchError(wrk->busyobj,"chunked tail no NL"));
} while (cl > 0);
return (0);
}
diff --git a/bin/varnishd/cache/cache_gzip.c b/bin/varnishd/cache/cache_gzip.c
index 5901930..c4eab44 100644
--- a/bin/varnishd/cache/cache_gzip.c
+++ b/bin/varnishd/cache/cache_gzip.c
@@ -482,7 +482,7 @@ vfp_gunzip_bytes(struct worker *wrk, struct http_conn *htc, ssize_t bytes)
return(-1);
i = VGZ_Gunzip(vg, &dp, &dl);
if (i != VGZ_OK && i != VGZ_END)
- return(FetchError(wrk, "Gunzip data error"));
+ return(FetchError(wrk->busyobj, "Gunzip data error"));
wrk->busyobj->fetch_obj->len += dl;
if (wrk->busyobj->do_stream)
RES_StreamPoll(wrk);
@@ -506,7 +506,8 @@ vfp_gunzip_end(struct worker *wrk)
return(0);
}
if (VGZ_Destroy(&vg, -1) != VGZ_END)
- return(FetchError(wrk, "Gunzip error at the very end"));
+ return(FetchError(wrk->busyobj,
+ "Gunzip error at the very end"));
return (0);
}
@@ -599,7 +600,7 @@ vfp_gzip_end(struct worker *wrk)
RES_StreamPoll(wrk);
VGZ_UpdateObj(vg, wrk->busyobj->fetch_obj);
if (VGZ_Destroy(&vg, -1) != VGZ_END)
- return(FetchError(wrk, "Gzip error at the very end"));
+ return(FetchError(wrk->busyobj, "Gzip error at the very end"));
return (0);
}
@@ -664,9 +665,10 @@ vfp_testgzip_bytes(struct worker *wrk, struct http_conn *htc, ssize_t bytes)
VGZ_Obuf(vg, vg->m_buf, vg->m_sz);
i = VGZ_Gunzip(vg, &dp, &dl);
if (i == VGZ_END && !VGZ_IbufEmpty(vg))
- return(FetchError(wrk, "Junk after gzip data"));
+ return(FetchError(wrk->busyobj,
+ "Junk after gzip data"));
if (i != VGZ_OK && i != VGZ_END)
- return(FetchError2(wrk,
+ return(FetchError2(wrk->busyobj,
"Invalid Gzip data", vg->vz.msg));
}
}
@@ -690,7 +692,8 @@ vfp_testgzip_end(struct worker *wrk)
}
VGZ_UpdateObj(vg, wrk->busyobj->fetch_obj);
if (VGZ_Destroy(&vg, -1) != VGZ_END)
- return(FetchError(wrk, "TestGunzip error at the very end"));
+ return(FetchError(wrk->busyobj,
+ "TestGunzip error at the very end"));
return (0);
}
More information about the varnish-commit
mailing list