[master] 67a4826 Move beresp and bereq to busyobj, but leave the memory allocation in worker for now.
Poul-Henning Kamp
phk at varnish-cache.org
Wed Dec 7 11:31:26 CET 2011
commit 67a48263698c6cd5fb8c9e43768805345cc5bea6
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Dec 7 10:30:44 2011 +0000
Move beresp and bereq to busyobj, but leave the memory allocation in
worker for now.
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 56f23fd..24c1dc9 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -328,8 +328,8 @@ struct worker {
const char *storage_hint;
/* Fetch stuff. Here because pipe has no busyobj */
- struct http *bereq;
- struct http *beresp;
+ struct http *x_bereq;
+ struct http *x_beresp;
/* Stream state */
struct stream_ctx *sctx;
@@ -510,6 +510,8 @@ struct busyobj {
struct vgz *vgz_rx;
struct vbc *vbc;
+ struct http *bereq;
+ struct http *beresp;
struct object *fetch_obj;
struct exp exp;
struct http_conn htc;
diff --git a/bin/varnishd/cache/cache_backend.c b/bin/varnishd/cache/cache_backend.c
index 21c1a4c..cf9d60f 100644
--- a/bin/varnishd/cache/cache_backend.c
+++ b/bin/varnishd/cache/cache_backend.c
@@ -96,6 +96,8 @@ VBE_GetBusyObj(struct worker *wrk)
busyobj = vbe_NewBusyObj();
AN(busyobj);
busyobj->refcount = 1;
+ busyobj->beresp = wrk->x_beresp;
+ busyobj->bereq = wrk->x_bereq;
return (busyobj);
}
@@ -162,10 +164,10 @@ VDI_AddHostHeader(struct worker *wrk, const struct vbc *vbc)
{
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
- CHECK_OBJ_NOTNULL(wrk->bereq, HTTP_MAGIC);
+ CHECK_OBJ_NOTNULL(wrk->busyobj->bereq, HTTP_MAGIC);
CHECK_OBJ_NOTNULL(vbc, VBC_MAGIC);
CHECK_OBJ_NOTNULL(vbc->vdis, VDI_SIMPLE_MAGIC);
- http_PrintfHeader(wrk, vbc->vsl_id, wrk->bereq,
+ http_PrintfHeader(wrk, vbc->vsl_id, wrk->busyobj->bereq,
"Host: %s", vbc->vdis->vrt->hosthdr);
}
diff --git a/bin/varnishd/cache/cache_center.c b/bin/varnishd/cache/cache_center.c
index 79e7956..442e2bb 100644
--- a/bin/varnishd/cache/cache_center.c
+++ b/bin/varnishd/cache/cache_center.c
@@ -262,8 +262,6 @@ cnt_prepresp(struct sess *sp)
AZ(wrk->obj);
sp->restarts++;
sp->director = NULL;
- http_Setup(wrk->bereq, NULL);
- http_Setup(wrk->beresp, NULL);
http_Setup(wrk->resp, NULL);
sp->step = STP_RECV;
return (0);
@@ -476,8 +474,8 @@ cnt_error(struct sess *sp)
if (wrk->obj == NULL) {
sp->doclose = "Out of objects";
sp->director = NULL;
- http_Setup(wrk->beresp, NULL);
- http_Setup(wrk->bereq, NULL);
+ http_Setup(wrk->busyobj->beresp, NULL);
+ http_Setup(wrk->busyobj->bereq, NULL);
sp->step = STP_DONE;
return(0);
}
@@ -526,7 +524,7 @@ cnt_error(struct sess *sp)
assert(sp->handling == VCL_RET_DELIVER);
sp->err_code = 0;
sp->err_reason = NULL;
- http_Setup(wrk->bereq, NULL);
+ http_Setup(wrk->busyobj->bereq, NULL);
VBE_DerefBusyObj(wrk, &wrk->busyobj);
sp->step = STP_PREPRESP;
return (0);
@@ -579,9 +577,9 @@ cnt_fetch(struct sess *sp)
AZ(wrk->busyobj->should_close);
AZ(wrk->storage_hint);
- http_Setup(wrk->beresp, wrk->ws);
+ http_Setup(wrk->busyobj->beresp, wrk->ws);
- need_host_hdr = !http_GetHdr(wrk->bereq, H_Host, NULL);
+ need_host_hdr = !http_GetHdr(wrk->busyobj->bereq, H_Host, NULL);
i = FetchHdr(sp, need_host_hdr);
/*
@@ -603,8 +601,8 @@ cnt_fetch(struct sess *sp)
* and we rely on their content outside of VCL, so collect them
* into one line here.
*/
- http_CollectHdr(wrk->beresp, H_Cache_Control);
- http_CollectHdr(wrk->beresp, H_Vary);
+ http_CollectHdr(wrk->busyobj->beresp, H_Cache_Control);
+ http_CollectHdr(wrk->busyobj->beresp, H_Vary);
/*
* Figure out how the fetch is supposed to happen, before the
@@ -613,7 +611,7 @@ cnt_fetch(struct sess *sp)
*/
wrk->busyobj->body_status = RFC2616_Body(sp);
- sp->err_code = http_GetStatus(wrk->beresp);
+ sp->err_code = http_GetStatus(wrk->busyobj->beresp);
/*
* What does RFC2616 think about TTL ?
@@ -657,8 +655,6 @@ cnt_fetch(struct sess *sp)
wrk->objcore = NULL;
}
VBE_DerefBusyObj(wrk, &wrk->busyobj);
- http_Setup(wrk->bereq, NULL);
- http_Setup(wrk->beresp, NULL);
sp->director = NULL;
wrk->storage_hint = NULL;
@@ -748,10 +744,10 @@ cnt_fetchbody(struct sess *sp)
wrk->busyobj->do_gzip = wrk->busyobj->do_gunzip = 0;
wrk->busyobj->is_gzip =
- http_HdrIs(wrk->beresp, H_Content_Encoding, "gzip");
+ http_HdrIs(wrk->busyobj->beresp, H_Content_Encoding, "gzip");
wrk->busyobj->is_gunzip =
- !http_GetHdr(wrk->beresp, H_Content_Encoding, NULL);
+ !http_GetHdr(wrk->busyobj->beresp, H_Content_Encoding, NULL);
/* It can't be both */
assert(wrk->busyobj->is_gzip == 0 || wrk->busyobj->is_gunzip == 0);
@@ -762,7 +758,7 @@ cnt_fetchbody(struct sess *sp)
/* If we do gunzip, remove the C-E header */
if (wrk->busyobj->do_gunzip)
- http_Unset(wrk->beresp, H_Content_Encoding);
+ http_Unset(wrk->busyobj->beresp, H_Content_Encoding);
/* We wont gzip unless it is ungziped */
if (wrk->busyobj->do_gzip && !wrk->busyobj->is_gunzip)
@@ -770,7 +766,7 @@ cnt_fetchbody(struct sess *sp)
/* If we do gzip, add the C-E header */
if (wrk->busyobj->do_gzip)
- http_SetHeader(wrk, sp->vsl_id, wrk->beresp,
+ http_SetHeader(wrk, sp->vsl_id, wrk->busyobj->beresp,
"Content-Encoding: gzip");
/* But we can't do both at the same time */
@@ -791,13 +787,13 @@ cnt_fetchbody(struct sess *sp)
if (!sp->wantbody)
wrk->busyobj->do_stream = 0;
- l = http_EstimateWS(wrk->beresp,
+ l = http_EstimateWS(wrk->busyobj->beresp,
pass ? HTTPH_R_PASS : HTTPH_A_INS, &nhttp);
/* Create Vary instructions */
if (wrk->objcore != NULL) {
CHECK_OBJ_NOTNULL(wrk->objcore, OBJCORE_MAGIC);
- vary = VRY_Create(sp, wrk->beresp);
+ vary = VRY_Create(sp, wrk->busyobj->beresp);
if (vary != NULL) {
varyl = VSB_len(vary);
assert(varyl > 0);
@@ -855,7 +851,7 @@ cnt_fetchbody(struct sess *sp)
WS_Assert(wrk->obj->ws_o);
/* Filter into object */
- hp = wrk->beresp;
+ hp = wrk->busyobj->beresp;
hp2 = wrk->obj->http;
hp2->logtag = HTTP_Obj;
@@ -891,8 +887,8 @@ cnt_fetchbody(struct sess *sp)
/* Use unmodified headers*/
i = FetchBody(wrk, wrk->obj);
- http_Setup(wrk->bereq, NULL);
- http_Setup(wrk->beresp, NULL);
+ http_Setup(wrk->busyobj->bereq, NULL);
+ http_Setup(wrk->busyobj->beresp, NULL);
wrk->busyobj->vfp = NULL;
assert(WRW_IsReleased(wrk));
AZ(wrk->busyobj->vbc);
@@ -961,8 +957,8 @@ cnt_streambody(struct sess *sp)
i = FetchBody(wrk, wrk->obj);
- http_Setup(wrk->bereq, NULL);
- http_Setup(wrk->beresp, NULL);
+ http_Setup(wrk->busyobj->bereq, NULL);
+ http_Setup(wrk->busyobj->beresp, NULL);
wrk->busyobj->vfp = NULL;
AZ(wrk->busyobj->vbc);
AN(sp->director);
@@ -1075,8 +1071,8 @@ cnt_hit(struct sess *sp)
if (sp->handling == VCL_RET_DELIVER) {
/* Dispose of any body part of the request */
(void)FetchReqBody(sp);
- AZ(wrk->bereq->ws);
- AZ(wrk->beresp->ws);
+ //AZ(wrk->busyobj->bereq->ws);
+ //AZ(wrk->busyobj->beresp->ws);
sp->step = STP_PREPRESP;
return (0);
}
@@ -1257,17 +1253,18 @@ cnt_miss(struct sess *sp)
AN(wrk->objcore);
CHECK_OBJ_NOTNULL(wrk->busyobj, BUSYOBJ_MAGIC);
WS_Reset(wrk->ws, NULL);
- http_Setup(wrk->bereq, wrk->ws);
+ wrk->busyobj = VBE_GetBusyObj(wrk);
+ http_Setup(wrk->busyobj->bereq, wrk->ws);
http_FilterHeader(sp, HTTPH_R_FETCH);
- http_ForceGet(wrk->bereq);
+ http_ForceGet(wrk->busyobj->bereq);
if (cache_param->http_gzip_support) {
/*
* We always ask the backend for gzip, even if the
* client doesn't grok it. We will uncompress for
* the minority of clients which don't.
*/
- http_Unset(wrk->bereq, H_Accept_Encoding);
- http_SetHeader(wrk, sp->vsl_id, wrk->bereq,
+ http_Unset(wrk->busyobj->bereq, H_Accept_Encoding);
+ http_SetHeader(wrk, sp->vsl_id, wrk->busyobj->bereq,
"Accept-Encoding: gzip");
}
wrk->connect_timeout = 0;
@@ -1280,7 +1277,7 @@ cnt_miss(struct sess *sp)
case VCL_RET_ERROR:
AZ(HSH_Deref(wrk, wrk->objcore, NULL));
wrk->objcore = NULL;
- http_Setup(wrk->bereq, NULL);
+ http_Setup(wrk->busyobj->bereq, NULL);
VBE_DerefBusyObj(wrk, &wrk->busyobj);
sp->step = STP_ERROR;
return (0);
@@ -1350,7 +1347,8 @@ cnt_pass(struct sess *sp)
wrk->busyobj = VBE_GetBusyObj(wrk);
WS_Reset(wrk->ws, NULL);
- http_Setup(wrk->bereq, wrk->ws);
+ wrk->busyobj = VBE_GetBusyObj(wrk);
+ http_Setup(wrk->busyobj->bereq, wrk->ws);
http_FilterHeader(sp, HTTPH_R_PASS);
wrk->connect_timeout = 0;
@@ -1358,7 +1356,7 @@ cnt_pass(struct sess *sp)
wrk->between_bytes_timeout = 0;
VCL_pass_method(sp);
if (sp->handling == VCL_RET_ERROR) {
- http_Setup(wrk->bereq, NULL);
+ http_Setup(wrk->busyobj->bereq, NULL);
VBE_DerefBusyObj(wrk, &wrk->busyobj);
sp->step = STP_ERROR;
return (0);
@@ -1404,11 +1402,13 @@ cnt_pipe(struct sess *sp)
wrk = sp->wrk;
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(sp->vcl, VCL_CONF_MAGIC);
+ AZ(wrk->busyobj);
wrk->acct_tmp.pipe++;
wrk->busyobj = VBE_GetBusyObj(wrk);
WS_Reset(wrk->ws, NULL);
- http_Setup(wrk->bereq, wrk->ws);
+ wrk->busyobj = VBE_GetBusyObj(wrk);
+ http_Setup(wrk->busyobj->bereq, wrk->ws);
http_FilterHeader(sp, HTTPH_R_PIPE);
VCL_pipe_method(sp);
@@ -1419,8 +1419,8 @@ cnt_pipe(struct sess *sp)
PipeSession(sp);
assert(WRW_IsReleased(wrk));
+ http_Setup(wrk->busyobj->bereq, NULL);
VBE_DerefBusyObj(wrk, &wrk->busyobj);
- http_Setup(wrk->bereq, NULL);
sp->step = STP_DONE;
return (0);
}
diff --git a/bin/varnishd/cache/cache_dir_dns.c b/bin/varnishd/cache/cache_dir_dns.c
index f735ebf..56bce48 100644
--- a/bin/varnishd/cache/cache_dir_dns.c
+++ b/bin/varnishd/cache/cache_dir_dns.c
@@ -347,8 +347,8 @@ vdi_dns_find_backend(const struct sess *sp, struct vdi_dns *vs)
/* bereq is only present after recv et. al, otherwise use req (ie:
* use req for health checks in vcl_recv and such).
*/
- if (sp->wrk->bereq)
- hp = sp->wrk->bereq;
+ if (sp->wrk->busyobj != NULL && sp->wrk->busyobj->bereq)
+ hp = sp->wrk->busyobj->bereq;
else
hp = sp->http;
diff --git a/bin/varnishd/cache/cache_esi_parse.c b/bin/varnishd/cache/cache_esi_parse.c
index e431a8d..8352717 100644
--- a/bin/varnishd/cache/cache_esi_parse.c
+++ b/bin/varnishd/cache/cache_esi_parse.c
@@ -499,7 +499,7 @@ vep_do_include(struct vep_state *vep, enum dowhat what)
VSB_printf(vep->vsb, "%c", 0);
} else {
VSB_printf(vep->vsb, "%c", 0);
- url = vep->wrk->bereq->hd[HTTP_HDR_URL];
+ url = vep->wrk->busyobj->bereq->hd[HTTP_HDR_URL];
/* Look for the last / before a '?' */
h = NULL;
for (q = url.b; q < url.e && *q != '?'; q++)
diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 8a1ac5b..936dc30 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -398,7 +398,7 @@ FetchHdr(struct sess *sp, int need_host_hdr)
AN(sp->wrk->objcore->flags & OC_F_BUSY);
}
- hp = wrk->bereq;
+ hp = wrk->busyobj->bereq;
sp->wrk->busyobj->vbc = VDI_GetFd(NULL, sp);
if (sp->wrk->busyobj->vbc == NULL) {
@@ -470,7 +470,7 @@ FetchHdr(struct sess *sp, int need_host_hdr)
}
}
- hp = wrk->beresp;
+ hp = wrk->busyobj->beresp;
if (http_DissectResponse(wrk, htc, hp)) {
WSP(sp, SLT_FetchError, "http format error");
diff --git a/bin/varnishd/cache/cache_http.c b/bin/varnishd/cache/cache_http.c
index 267af00..4a6ba82 100644
--- a/bin/varnishd/cache/cache_http.c
+++ b/bin/varnishd/cache/cache_http.c
@@ -869,7 +869,7 @@ http_FilterHeader(const struct sess *sp, unsigned how)
{
struct http *hp;
- hp = sp->wrk->bereq;
+ hp = sp->wrk->busyobj->bereq;
CHECK_OBJ_NOTNULL(hp, HTTP_MAGIC);
hp->logtag = HTTP_Tx;
diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
index 9fa14e0..94a4c09 100644
--- a/bin/varnishd/cache/cache_panic.c
+++ b/bin/varnishd/cache/cache_panic.c
@@ -197,10 +197,10 @@ pan_wrk(const struct worker *wrk)
VSB_printf(pan_vsp, " worker = %p {\n", wrk);
pan_ws(wrk->ws, 4);
- if (wrk->bereq->ws != NULL)
- pan_http("bereq", wrk->bereq, 4);
- if (wrk->beresp->ws != NULL)
- pan_http("beresp", wrk->beresp, 4);
+ if (wrk->busyobj != NULL && wrk->busyobj->bereq->ws != NULL)
+ pan_http("bereq", wrk->busyobj->bereq, 4);
+ if (wrk->busyobj != NULL && wrk->busyobj->beresp->ws != NULL)
+ pan_http("beresp", wrk->busyobj->beresp, 4);
if (wrk->resp->ws != NULL)
pan_http("resp", wrk->resp, 4);
VSB_printf(pan_vsp, " },\n");
diff --git a/bin/varnishd/cache/cache_pipe.c b/bin/varnishd/cache/cache_pipe.c
index 5337eda..8963fb7 100644
--- a/bin/varnishd/cache/cache_pipe.c
+++ b/bin/varnishd/cache/cache_pipe.c
@@ -78,7 +78,7 @@ PipeSession(struct sess *sp)
WRW_Reserve(w, &vc->fd);
sp->wrk->acct_tmp.hdrbytes +=
- http_Write(w, sp->vsl_id, sp->wrk->bereq, 0);
+ http_Write(w, sp->vsl_id, sp->wrk->busyobj->bereq, 0);
if (sp->htc->pipeline.b != NULL)
sp->wrk->acct_tmp.bodybytes +=
diff --git a/bin/varnishd/cache/cache_pool.c b/bin/varnishd/cache/cache_pool.c
index 582bb70..cf40e85 100644
--- a/bin/varnishd/cache/cache_pool.c
+++ b/bin/varnishd/cache/cache_pool.c
@@ -196,8 +196,8 @@ Pool_Work_Thread(void *priv, struct worker *w)
Lck_AssertHeld(&pp->mtx);
CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
- CHECK_OBJ_NOTNULL(w->bereq, HTTP_MAGIC);
- CHECK_OBJ_NOTNULL(w->beresp, HTTP_MAGIC);
+ CHECK_OBJ_NOTNULL(w->x_bereq, HTTP_MAGIC);
+ CHECK_OBJ_NOTNULL(w->x_beresp, HTTP_MAGIC);
CHECK_OBJ_NOTNULL(w->resp, HTTP_MAGIC);
WS_Reset(w->ws, NULL);
@@ -267,8 +267,7 @@ Pool_Work_Thread(void *priv, struct worker *w)
w->sp = NULL;
WS_Assert(w->ws);
- AZ(w->bereq->ws);
- AZ(w->beresp->ws);
+ AZ(w->busyobj);
AZ(w->resp->ws);
AZ(w->wrw.wfd);
AZ(w->storage_hint);
diff --git a/bin/varnishd/cache/cache_rfc2616.c b/bin/varnishd/cache/cache_rfc2616.c
index 599ffbb..6e7efea 100644
--- a/bin/varnishd/cache/cache_rfc2616.c
+++ b/bin/varnishd/cache/cache_rfc2616.c
@@ -73,7 +73,7 @@ RFC2616_Ttl(const struct sess *sp)
expp = &sp->wrk->busyobj->exp;
- hp = sp->wrk->beresp;
+ hp = sp->wrk->busyobj->beresp;
assert(expp->entered != 0.0 && !isnan(expp->entered));
/* If all else fails, cache using default ttl */
@@ -183,7 +183,7 @@ RFC2616_Body(const struct sess *sp)
struct http *hp;
char *b;
- hp = sp->wrk->beresp;
+ hp = sp->wrk->busyobj->beresp;
if (hp->protover < 11 && !http_HdrIs(hp, H_Connection, "keep-alive"))
sp->wrk->busyobj->should_close = 1;
@@ -192,7 +192,7 @@ RFC2616_Body(const struct sess *sp)
else
sp->wrk->busyobj->should_close = 0;
- if (!strcasecmp(http_GetReq(sp->wrk->bereq), "head")) {
+ if (!strcasecmp(http_GetReq(sp->wrk->busyobj->bereq), "head")) {
/*
* A HEAD request can never have a body in the reply,
* no matter what the headers might say.
diff --git a/bin/varnishd/cache/cache_vrt.c b/bin/varnishd/cache/cache_vrt.c
index bbf93b5..a696f64 100644
--- a/bin/varnishd/cache/cache_vrt.c
+++ b/bin/varnishd/cache/cache_vrt.c
@@ -100,10 +100,10 @@ vrt_selecthttp(const struct sess *sp, enum gethdr_e where)
hp = sp->http;
break;
case HDR_BEREQ:
- hp = sp->wrk->bereq;
+ hp = sp->wrk->busyobj->bereq;
break;
case HDR_BERESP:
- hp = sp->wrk->beresp;
+ hp = sp->wrk->busyobj->beresp;
break;
case HDR_RESP:
hp = sp->wrk->resp;
diff --git a/bin/varnishd/cache/cache_vrt_var.c b/bin/varnishd/cache/cache_vrt_var.c
index cb54837..0662e26 100644
--- a/bin/varnishd/cache/cache_vrt_var.c
+++ b/bin/varnishd/cache/cache_vrt_var.c
@@ -85,15 +85,15 @@ VRT_r_##obj##_##hdr(const struct sess *sp) \
VRT_DO_HDR(req, request, sp->http, HTTP_HDR_REQ)
VRT_DO_HDR(req, url, sp->http, HTTP_HDR_URL)
VRT_DO_HDR(req, proto, sp->http, HTTP_HDR_PROTO)
-VRT_DO_HDR(bereq, request, sp->wrk->bereq, HTTP_HDR_REQ)
-VRT_DO_HDR(bereq, url, sp->wrk->bereq, HTTP_HDR_URL)
-VRT_DO_HDR(bereq, proto, sp->wrk->bereq, HTTP_HDR_PROTO)
+VRT_DO_HDR(bereq, request, sp->wrk->busyobj->bereq, HTTP_HDR_REQ)
+VRT_DO_HDR(bereq, url, sp->wrk->busyobj->bereq, HTTP_HDR_URL)
+VRT_DO_HDR(bereq, proto, sp->wrk->busyobj->bereq, HTTP_HDR_PROTO)
VRT_DO_HDR(obj, proto, sp->wrk->obj->http, HTTP_HDR_PROTO)
VRT_DO_HDR(obj, response, sp->wrk->obj->http, HTTP_HDR_RESPONSE)
VRT_DO_HDR(resp, proto, sp->wrk->resp, HTTP_HDR_PROTO)
VRT_DO_HDR(resp, response, sp->wrk->resp, HTTP_HDR_RESPONSE)
-VRT_DO_HDR(beresp, proto, sp->wrk->beresp, HTTP_HDR_PROTO)
-VRT_DO_HDR(beresp, response, sp->wrk->beresp, HTTP_HDR_RESPONSE)
+VRT_DO_HDR(beresp, proto, sp->wrk->busyobj->beresp, HTTP_HDR_PROTO)
+VRT_DO_HDR(beresp, response, sp->wrk->busyobj->beresp, HTTP_HDR_RESPONSE)
/*--------------------------------------------------------------------*/
@@ -115,7 +115,7 @@ VRT_r_##obj##_status(const struct sess *sp) \
}
VRT_DO_STATUS(obj, sp->wrk->obj->http)
-VRT_DO_STATUS(beresp, sp->wrk->beresp)
+VRT_DO_STATUS(beresp, sp->wrk->busyobj->beresp)
VRT_DO_STATUS(resp, sp->wrk->resp)
/*--------------------------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_wrk.c b/bin/varnishd/cache/cache_wrk.c
index 1d80805..73eedb2 100644
--- a/bin/varnishd/cache/cache_wrk.c
+++ b/bin/varnishd/cache/cache_wrk.c
@@ -153,8 +153,8 @@ wrk_thread_real(void *priv, unsigned shm_workspace, unsigned sess_workspace,
w->wlb = w->wlp = wlog;
w->wle = wlog + (sizeof wlog) / 4;
w->sha256ctx = &sha256;
- w->bereq = HTTP_create(http0, nhttp);
- w->beresp = HTTP_create(http1, nhttp);
+ w->x_bereq = HTTP_create(http0, nhttp);
+ w->x_beresp = HTTP_create(http1, nhttp);
w->resp = HTTP_create(http2, nhttp);
w->wrw.iov = iov;
w->wrw.siov = siov;
More information about the varnish-commit
mailing list