]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: htx: add a function to cut the beginning of a DATA block
authorWilly Tarreau <w@1wt.eu>
Fri, 30 Nov 2018 13:29:31 +0000 (14:29 +0100)
committerWilly Tarreau <w@1wt.eu>
Sat, 1 Dec 2018 16:36:59 +0000 (17:36 +0100)
htx_cut_data_blk() is used to cut the beginning of a DATA block after a
part of it was tranferred. It simply advances the address, reduces the
advertised length and updates the htx's total data count.

include/proto/htx.h

index 779aab6d57055e0a29aa52aa39fc785f7f983d02..2f7aaf74274e30ee366e6c48a6a72a61787098ad 100644 (file)
@@ -337,6 +337,19 @@ static inline struct ist htx_get_blk_value(const struct htx *htx, const struct h
         return ret;
 }
 
+/* Removes <n> bytes from the beginning of DATA block <blk>. The block's start
+ * address and its length are adjusted, and the htx's total data count is
+ * updated. This is used to mark that part of some data were transfered
+ * from a DATA block without removing this DATA block. No sanity check is
+ * performed, the caller is reponsible for doing this exclusively on DATA
+ * blocks, and never removing more than the block's size.
+ */
+static inline void htx_cut_data_blk(struct htx *htx, struct htx_blk *blk, uint32_t n)
+{
+       blk->addr += n;
+       blk->info -= n;
+       htx->data -= n;
+}
 
 /* Returns the space used by metadata in <htx>. */
 static inline uint32_t htx_meta_space(const struct htx *htx)