Hi Simon, Sorry for the long delay and thanks for waiting. I've just reviewed your two patch series (16 total). They're pretty good in my opinion.
I'm seeing a few points we'll probably have to adjust : - normally, health checks reserve file descriptors (one per checked server), here we'll have to count up to two fds when the two checks are enabled. I don't remember where this is done, maybe in haproxy.c. - I think that we'll soon have to support an agent-addr parameter, which means that ->addr will have to move from check_common to struct check. The reason for the last point is that I'm pretty sure that a number of uses of the agent will involve checking a component to get reliability information about the server itself. It might simply be because the server runs on multiple addresses, or in transparent mode. But it might also be because a monitoring station is checked to retrieve the server status. Also what I like with your approach with the "struct check" is that it could make it easier to combine tests later. Many people ask how it is possible to check two ports at a time and AND them. Till now it was not possible but now it starts to be possible. We already have a massive number of patches pending for dev18, so I think I'll issue dev18 now then open post-dev18 with your patches. Thank you! Willy