Hi, this series comprises of several components
A. Patches 0-1 are cleanup patches DOC: Clarify documentation of option lb-agent-chk CLEANUP: Make parameters of srv_downtime and srv_getinter const B. Patches 2 - 12 add support for a secondary agent health check In this mode, a non-agent health check is run as the primary health check and a secondary agent health check is also run. MEDIUM: Split up struct server's check element MEDIUM: Move {,fast,down}inter to struct check MEDIUM: Move result element to struct check MEDIUM: Paramatise functions over the check of a server MEDIUM: cfgparse: Factor out check initialisation MEDIUM: Add state to struct check MEDIUM: Add name element to struct check MEDIUM: Move health element to struct check MEDIUM: Add helper for task creation for checks MEDIUM: checks: Add supplementary agent checks C. Patches 13 - 15 add support for the agent-hdr option to http-check. This allows agent information to be passed in the HTTP header returned as part of an http check. In this way an HTTP health check and an agent check can be run simultaneously as part of the same health check. MEDIUM: Add helper for agent check events. MEDIUM: Parser to allow matching of HTTP header MEDIUM: Add http-check agent-hdr option D. Patches 16 - 20 enhance the behaviour of agent checks. These behavioural changes were requested by loadbalancer.org. They reflect differences be their desired implementation and my supplied implementation and solutions to problems they encountered during testing. MEDIUM: Add DRAIN state and report it on the stats page MEDIUM: Log agent fail, stopped or down as info MEDIUM: Do not mark a server as down if the agent is unavailable MEDIUM: Set rise and fall of agent checks to 1 MEDIUM: Add set agent pause|unpause unix socket command E. Patches 21 - 23 add support for checking using an external short-lived process This is not strictly related to the agent health check work, but common code paths are touched making many of the preceding patches dependencies for the external health check patches. MEDIUM: Break out check establishment into establish_chk() MEDIUM: Add external check doc/configuration.txt | 138 ++++- include/common/defaults.h | 2 + include/proto/checks.h | 4 +- include/proto/server.h | 4 +- include/types/checks.h | 4 + include/types/proxy.h | 3 + include/types/server.h | 69 ++- src/cfgparse.c | 220 ++++++-- src/checks.c | 1315 +++++++++++++++++++++++++++++++-------------- src/dumpstats.c | 55 +- src/haproxy.c | 6 + src/proto_http.c | 6 +- src/server.c | 16 +- 13 files changed, 1320 insertions(+), 522 deletions(-) -- 1.7.10.4