mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-16 00:14:31 +00:00
7c3c54177a
We used to apply a limit to each buffer's size in order to leave some room to rewrite headers, then we used to remove this limit once the session switched to a data state. Proceeding that way becomes a problem with keepalive because we have to know when to stop reading too much data into the buffer so that we can leave some room again to process next requests. The principle we adopt here consists in only relying on to_forward+send_max. Indeed, both of those data define how many bytes will leave the buffer. So as long as their sum is larger than maxrewrite, we can safely fill the buffers. If they are smaller, then we refrain from filling the buffer. This means that we won't risk to fill buffers when reading last data chunk followed by a POST request and its contents. The only impact identified so far is that we must ensure that the BF_FULL flag is correctly dropped when starting to forward. Right now this is OK because nobody inflates to_forward without using buffer_forward(). |
||
---|---|---|
.. | ||
acl.h | ||
backend.h | ||
buffers.h | ||
capture.h | ||
checks.h | ||
counters.h | ||
fd.h | ||
freq_ctr.h | ||
global.h | ||
hdr_idx.h | ||
httperr.h | ||
lb_chash.h | ||
lb_fwlc.h | ||
lb_fwrr.h | ||
lb_map.h | ||
log.h | ||
pipe.h | ||
port_range.h | ||
proto_http.h | ||
proto_tcp.h | ||
protocols.h | ||
proxy.h | ||
queue.h | ||
server.h | ||
session.h | ||
signal.h | ||
stream_interface.h | ||
task.h | ||
template.h |