Prevent a partial copy of trailers or headers when using the <mark>
parameter.
When using htx_xfer_blks(), transfering partial headers or trailers are
prevented when restricted by the <count> parameter. However using the
<mark> parameter will still allow to do it.
This patch changes the behavior by checking the <mark> type only after
checking the headers/trailers type, so we can still rollback on partial
transfer.
No impact on the current code, which does not try to do that yet.
break;
}
- if (type == mark) {
- blk = htx_get_next_blk(src, blk);
- srcref = dstref = NULL;
- break;
- }
-
/* Save <blk> to <srcref> and <dstblk> to <dstref> when we start
* to xfer headers or trailers. When EOH/EOT block is reached,
* both are reset. It is mandatory to be able to rollback a
}
else if (type == HTX_BLK_EOH || type == HTX_BLK_EOT)
srcref = dstref = NULL;
+
+ /* <mark> allows a copy of the block which matched, then stop */
+ if (type == mark) {
+ blk = htx_get_next_blk(src, blk);
+ break;
+ }
}
if (unlikely(dstref)) {