haproxy/src
Willy Tarreau 347a35d19e MAJOR: stats: move the HTTP stats handling to its applet
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.
2013-12-09 15:40:22 +01:00
..
acl.c BUG/MINOR: acl: fix sample expression error reporting 2013-12-06 16:02:46 +01:00
appsession.c MEDIUM: make the trash be a chunk instead of a char * 2012-10-29 16:57:30 +01:00
arg.c BUG/MEDIUM: args: fix double free on error path in argument expression parser 2013-12-06 15:30:05 +01:00
auth.c MINOR: acl/pattern: use types different from int to clarify who does what. 2013-12-02 23:31:33 +01:00
backend.c CLEANUP: stream_interface: remove unused field err_loc 2013-12-09 15:40:21 +01:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c MINOR: buffer: align the last output line if there are less than 8 characters left 2013-11-21 08:07:04 +01:00
cfgparse.c MEDIUM: checks: add send/expect tcp based check 2013-12-06 11:50:47 +01:00
channel.c OPTIM: channel: inline channel_forward's fast path 2012-10-26 01:08:01 +02:00
checks.c MEDIUM: checks: make tcp-check perform multiple send() at once 2013-12-06 17:13:50 +01:00
chunk.c MINOR: chunks: centralize the trash chunk allocation 2012-12-23 21:46:07 +01:00
compression.c MEDIUM: sample: systematically pass the keyword pointer to the keyword 2013-08-01 21:17:13 +02:00
connection.c MINOR: connection: make it easier to emit proxy protocol for unknown addresses 2013-12-09 15:40:22 +01:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c MAJOR: stats: move the HTTP stats handling to its applet 2013-12-09 15:40:22 +01:00
ev_epoll.c OPTIM/MEDIUM: epoll: fuse active events into polled ones during polling changes 2013-11-15 23:15:10 +01:00
ev_kqueue.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
ev_poll.c MEDIUM: poll: do not use FD_* macros anymore 2013-03-31 15:01:01 +02:00
ev_select.c BUG/MAJOR: ev_select: disable the select() poller if maxsock > FD_SETSIZE 2013-03-31 15:01:05 +02:00
fd.c BUG: polling: don't skip polled events in the spec list 2012-11-12 01:57:14 +01:00
freq_ctr.c BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +01:00
frontend.c MEDIUM: sample: systematically pass the keyword pointer to the keyword 2013-08-01 21:17:13 +02:00
haproxy-systemd-wrapper.c LOW: systemd-wrapper: Write debug information to stdout 2013-11-23 12:06:51 +01:00
haproxy.c MEDIUM: http: The redirect strings follows the log format rules. 2013-12-02 23:31:33 +01:00
hash.c MEDIUM: backend: add support for the wt6 hash 2013-11-14 16:37:50 +01:00
hdr_idx.c OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fas.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fwlc.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fwrr.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_map.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
listener.c MEDIUM: sample: systematically pass the keyword pointer to the keyword 2013-08-01 21:17:13 +02:00
log.c BUILD: log: silent a warning about isblank() with latest patches 2013-12-03 00:51:09 +01:00
map.c MEDIUM: map: merge identical maps 2013-12-06 11:40:53 +01:00
memory.c MEDIUM: memory: add the ability to poison memory at run time 2012-05-08 21:28:16 +02:00
pattern.c BUG/MEDIUM: pattern: Pattern node has type of "struct pat_idx_elt" in place of "struct eb_node" 2013-12-09 15:39:01 +01:00
payload.c MEDIUM: pattern: rename "acl" prefix to "pat" 2013-12-02 23:31:33 +01:00
peers.c MEDIUM: peers: don't rely on conn->xprt_ctx anymore 2013-12-09 15:40:21 +01:00
pipe.c BUILD/MINOR: silent a build warning in src/pipe.c (fcntl) 2011-10-24 17:09:22 +02:00
proto_http.c MAJOR: stats: move the HTTP stats handling to its applet 2013-12-09 15:40:22 +01:00
proto_tcp.c MEDIUM: connection: set the socket shutdown flags on socket errors 2013-12-04 23:50:36 +01:00
proto_uxst.c MAJOR: listener: support inheriting a listening fd from the parent 2013-03-11 01:30:01 +01:00
protocol.c REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.c MEDIUM: checks: add send/expect tcp based check 2013-12-06 11:50:47 +01:00
queue.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
raw_sock.c MINOR: connection: clear errno prior to checking for errors 2013-12-05 02:23:48 +01:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c CLEANUP: regex: Create regex_comp function that compiles regex using compilation options 2013-10-14 14:42:50 +02:00
sample.c BUG/MINOR: acl: fix sample expression error reporting 2013-12-06 16:02:46 +01:00
server.c MEDIUM: Set rise and fall of agent checks to 1 2013-11-25 07:31:16 +01:00
session.c CLEANUP: stream_interface: remove unused field err_loc 2013-12-09 15:40:21 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c BUG/MEDIUM: shctx: makes the code independent on SSL runtime version. 2013-04-26 19:15:52 +02:00
signal.c BUG/MEDIUM: signal: signal handler does not properly check for signal bounds 2013-01-24 16:19:19 +01:00
ssl_sock.c MEDIUM: pattern: rename "acl" prefix to "pat" 2013-12-02 23:31:33 +01:00
standard.c MINOR: tools: function my_memmem() to lookup binary contents 2013-12-06 11:50:47 +01:00
stick_table.c BUG/MEDIUM: acl: fix regression introduced by latest converters support 2013-12-05 02:23:13 +01:00
stream_interface.c MEDIUM: connection: set the socket shutdown flags on socket errors 2013-12-04 23:50:36 +01:00
task.c [OPTIM] task: don't scan the run queue if we know it's empty 2011-09-10 20:08:49 +02:00
time.c BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +01:00
trace.c MINOR: add a new function call tracer for debugging purposes 2012-05-26 00:12:37 +02:00
uri_auth.c BUG/MEDIUM: uri_auth: missing NULL check and memory leak on memory shortage 2013-01-24 16:19:19 +01:00