BUG/MEDIUM: cache: use msg->sov to forward header
Use msg->sov to forward headers instead of msg->eoh. It can causes some
problem because eoh does not contains the last \r\n, and the filter does
not support to send the headers partially.
Cc: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/cache.c b/src/cache.c
index 02bb0e0..26d9b12 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -137,7 +137,7 @@
if (!(msg->chn->flags & CF_ISRESP) || !st)
return 1;
- st->hdrs_len = msg->eoh;
+ st->hdrs_len = msg->sov;
return 1;
}
@@ -394,12 +394,12 @@
if (!(txn->flags & TX_CACHEABLE))
goto out;
- if ((msg->eoh + msg->body_len) > (global.tune.bufsize - global.tune.maxrewrite))
+ if ((msg->sov + msg->body_len) > (global.tune.bufsize - global.tune.maxrewrite))
goto out;
shctx_lock(shctx);
- first = shctx_row_reserve_hot(shctx, sizeof(struct cache_entry) + msg->eoh + msg->body_len);
+ first = shctx_row_reserve_hot(shctx, sizeof(struct cache_entry) + msg->sov + msg->body_len);
if (!first) {
shctx_unlock(shctx);
goto out;
@@ -417,7 +417,7 @@
/* does not need to be locked because it's in the "hot" list,
* copy the headers */
- if (shctx_row_data_append(shctx, first, (unsigned char *)s->res.buf->p, msg->eoh) < 0)
+ if (shctx_row_data_append(shctx, first, (unsigned char *)s->res.buf->p, msg->sov) < 0)
goto out;
/* register the buffer in the filter ctx for filling it with data*/