mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 15:04:42 +00:00
347a35d19e
There is a big trouble with the way POST is handled for the admin stats page. The POST parameters are extracted from some http-request rules, and if not round they return zero hoping for being called again when more data passes. This results in the HTTP analyser being called several times and all the rules prior to the stats being executed multiple times as well. That includes rewrite rules. So instead of doing this, we now move all the processing of the stats into the stats applet. That way we just set the stats applet in the HTTP analyser when a stats request is detected, and the applet takes the time it needs to read the arguments and respond. We could even imagine improving the applet to support requests larger than a single buffer. The code was almost only moved and minimally changed. Several new HTTP states were added to the stats applet to emit headers, redirects and to read POST. It was necessary to do this because the headers sent depend on the parsing of the POST request. In the end it's beneficial because we removed two stream_int_retnclose() calls. |
||
---|---|---|
.. | ||
acl.h | ||
arg.h | ||
auth.h | ||
backend.h | ||
channel.h | ||
checks.h | ||
compression.h | ||
connection.h | ||
cttproxy.h | ||
dumpstats.h | ||
fd.h | ||
freq_ctr.h | ||
frontend.h | ||
hdr_idx.h | ||
lb_chash.h | ||
lb_fas.h | ||
lb_fwlc.h | ||
lb_fwrr.h | ||
lb_map.h | ||
listener.h | ||
log.h | ||
obj_type.h | ||
pattern.h | ||
payload.h | ||
peers.h | ||
pipe.h | ||
port_range.h | ||
proto_http.h | ||
proto_tcp.h | ||
proto_uxst.h | ||
protocol.h | ||
proxy.h | ||
queue.h | ||
raw_sock.h | ||
sample.h | ||
server.h | ||
session.h | ||
shctx.h | ||
signal.h | ||
ssl_sock.h | ||
stick_table.h | ||
stream_interface.h | ||
task.h | ||
template.h |