From 05c083ca8d58902972da47aec0ef75771277a2b2 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 15 May 2019 14:56:47 +0200 Subject: [PATCH] MINOR: htx: Add a field to set the memory used by headers in the HTX start-line The field hdrs_bytes has been added in the structure htx_sl. It should be used to set how many bytes are help by all headers, from the start-line to the corresponding EOH block. it must be set to -1 if it is unknown. --- include/common/htx.h | 3 +++ src/htx.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/common/htx.h b/include/common/htx.h index 55d493131..ec9909851 100644 --- a/include/common/htx.h +++ b/include/common/htx.h @@ -139,6 +139,9 @@ struct htx_sl { /* XXX 2 bytes unused */ + int32_t hdrs_bytes; /* Bytes held by all headers from this start-line + * to the corresponding EOH. -1 if unknown */ + unsigned int len[3]; /* length of differnt parts of the start-line */ char l[0]; }; diff --git a/src/htx.c b/src/htx.c index 3a2252feb..bc2ecbdf3 100644 --- a/src/htx.c +++ b/src/htx.c @@ -633,6 +633,8 @@ struct htx_sl *htx_replace_stline(struct htx *htx, struct htx_blk *blk, const st sl = htx_get_blk_ptr(htx, blk); sl->info = tmp.info; sl->flags = tmp.flags; + if (sl->hdrs_bytes != -1) + sl->hdrs_bytes += delta; HTX_SL_P1_LEN(sl) = p1.len; HTX_SL_P2_LEN(sl) = p2.len; @@ -669,7 +671,7 @@ struct htx_sl *htx_add_stline(struct htx *htx, enum htx_blk_type type, unsigned sl = htx_get_blk_ptr(htx, blk); if (htx->sl_pos == -1) htx->sl_pos = htx_get_blk_pos(htx, blk); - + sl->hdrs_bytes = -1; sl->flags = flags; HTX_SL_P1_LEN(sl) = p1.len;