mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-14 23:09:20 +02:00
In the historical implementation, all filter related information where stored at the stream level (using struct strm_flt * context), and filters iteration was performed at the stream level also. We identified that this was not ideal and would make the implementation of future filters more complex since filters ordering should be handled in a different order during request and response handling for decompression for instance. To make such thing possible, in this commit we migrate some channel specific filter contexts in the channel directly (request or response), and we implement 2 additional filter lists, one on the request channel and another on the response channel. The historical stream filter list is kept as-is because in some contexts only the stream is available and we have to iterate on all filters. But for functions where we only are interested in request side or response side filters, we now use dedicated channel filters list instead. The only overhead is that the "struct filter" was expanded by two "struct list". For now, no change of behavior is expected.