haproxy/src
Willy Tarreau bd741540d2 [MEDIUM] checks: add support for HTTP contents lookup
This patch adds the "http-check expect [r]{string,status}" statements
which enable health checks based on whether the response status or body
to an HTTP request contains a string or matches a regex.

This probably is one of the oldest patches that remained unmerged. Over
the time, several people have contributed to it, among which FinalBSD
(first and second implementations), Nick Chalk (port to 1.4), Anze
Skerlavaj (tests and fixes), Cyril Bonté (general fixes), and of course
myself for the final fixes and doc during integration.

Some people already use an old version of this patch which has several
issues, among which the inability to search for a plain string that is
not at the beginning of the data, and the inability to look for response
contents that are provided in a second and subsequent recv() calls. But
since some configs are already deployed, it was quite important to ensure
a 100% compatible behaviour on the working cases.

Thus, that patch fixes the issues while maintaining config compatibility
with already deployed versions.

(cherry picked from commit b507c43a3ce9a8e8e4b770e52e4edc20cba4c37f)
2010-10-30 19:04:31 +02:00
..
acl.c [MEDIUM] acl: make use of get_std_op() to parse intger ranges 2010-08-10 14:03:40 +02:00
appsession.c [MINOR] task: keep a task count and clean up task creators 2009-03-21 18:13:21 +01:00
auth.c [BUILD] fix platform-dependant build issues related to crypt() 2010-03-04 19:10:14 +01:00
backend.c [MEDIUM] backend: support servers on 0.0.0.0 2010-07-13 14:57:52 +02:00
base64.c [MINOR] Base64 decode 2010-01-31 19:14:07 +01:00
buffers.c [MEDIUM] buffers: rework the functions to exchange between SI and buffers 2010-09-08 17:04:31 +02:00
cfgparse.c [MEDIUM] checks: add support for HTTP contents lookup 2010-10-30 19:04:31 +02:00
checks.c [MEDIUM] checks: add support for HTTP contents lookup 2010-10-30 19:04:31 +02:00
cttproxy.c [BUG] cttproxy: socket fd leakage in check_cttproxy_version 2010-05-09 21:19:08 +02:00
dumpstats.c [MEDIUM] buffers: rework the functions to exchange between SI and buffers 2010-09-08 17:04:31 +02:00
ev_epoll.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_kqueue.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_poll.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_select.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_sepoll.c [MEDIUM] fd: merge fd_list into fdtab 2009-10-18 08:20:26 +02:00
fd.c [OPTIM] move some rarely used fields out of fdtab 2009-10-18 08:17:33 +02:00
freq_ctr.c [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.c [MAJOR] frontend: split accept() into frontend_accept() and session_accept() 2010-06-14 10:53:17 +02:00
haproxy.c [BUG] deinit: unbind listeners before freeing them 2010-09-03 10:38:17 +02:00
hdr_idx.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
lb_chash.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
log.c [MEDIUM] session: move the conn_retries attribute to the stream interface 2010-06-14 10:53:16 +02:00
memory.c [MEDIUM] ensure we don't recursively call pool_gc2() 2009-04-21 02:17:45 +02:00
pattern.c [CLEANUP] stick_table: move pattern to key functions to stick_table.c 2010-06-14 15:10:24 +02:00
pipe.c [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
proto_http.c [MEDIUM] make it possible to combine http-pretend-keepalived with httpclose 2010-10-30 19:04:31 +02:00
proto_tcp.c [MEDIUM] tcp-request : don't wait for inspect-delay to expire when the buffer is full 2010-10-30 19:04:31 +02:00
proto_uxst.c [MEDIUM] separate protocol-level accept() from the frontend's 2010-06-14 10:53:11 +02:00
protocols.c [CLEANUP] client: move some ACLs away to their respective locations 2010-06-14 10:53:10 +02:00
proxy.c [MINOR] support a global jobs counter 2010-08-31 15:39:26 +02:00
queue.c [BUG] queue: don't dequeue proxy-global requests on disabled servers 2010-08-17 21:39:07 +02:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
server.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
session.c [MINOR] support a global jobs counter 2010-08-31 15:39:26 +02:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
signal.c [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
standard.c [MINOR] tools: add a get_std_op() function to parse operators 2010-08-10 14:03:25 +02:00
stick_table.c [MEDIUM] session counters: automatically remove expired entries. 2010-08-10 18:04:15 +02:00
stream_interface.c [BUG] stream_interface: only call si->release when both dirs are closed 2010-09-07 16:16:50 +02:00
stream_sock.c [BUILD] stream_sock: previous fix lacked the #include, causing a warning. 2010-09-21 21:48:23 +02:00
task.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
time.c [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second. 2009-03-05 16:56:16 +01:00
uri_auth.c [MAJOR] use the new auth framework for http stats 2010-01-31 19:14:09 +01:00