mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
We don't store the start-line position anymore in the HTX message. Instead we store the first block position to analyze. For now, it is almost the same. But once all changes will be made on this part, this position will have to be used by HTX analyzers, and only in the analysis context, to know where the analyse should start. When new blocks are added in an HTX message, if the first block position is not defined, it is set. When the block pointed by it is removed, it is set to the block following it. -1 remains the value to unset the position. the first block position is unset when the HTX message is empty. It may also be unset on a non-empty message, meaning every blocks were already analyzed. From HTX analyzers point of view, this position is always set during headers analysis. When they are waiting for a request or a response, if it is unset, it means the analysis should wait. But once the analysis is started, and as long as headers are not forwarded, it points to the message start-line. As mentionned, outside the HTX analysis, no code must rely on the first block position. So multiplexers and applets must always use the head position to start a loop on an HTX message.