/* * Health-checks. * * Copyright 2008-2009 Krzysztof Piotr Oledzki * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * */ /* check status */ enum { HCHK_STATUS_UNKNOWN = 0, /* Unknown */ HCHK_STATUS_INI, /* Initializing */ HCHK_STATUS_START, /* Check started - SPECIAL STATUS */ /* Below we have finished checks */ HCHK_STATUS_CHECKED, /* DUMMY STATUS */ HCHK_STATUS_SOCKERR, /* Socket error */ HCHK_STATUS_L4OK, /* L4 check passed, for example tcp connect */ HCHK_STATUS_L4TOUT, /* L4 timeout */ HCHK_STATUS_L4CON, /* L4 connection problem, for example: */ /* "Connection refused" (tcp rst) or "No route to host" (icmp) */ HCHK_STATUS_L6OK, /* L6 check passed */ HCHK_STATUS_L6TOUT, /* L6 (SSL) timeout */ HCHK_STATUS_L6RSP, /* L6 invalid response - protocol error */ HCHK_STATUS_L7TOUT, /* L7 (HTTP/SMTP) timeout */ HCHK_STATUS_L7RSP, /* L7 invalid response - protocol error */ /* Below we have layer 5-7 data avaliable */ HCHK_STATUS_L57DATA, /* DUMMY STATUS */ HCHK_STATUS_L7OKD, /* L7 check passed */ HCHK_STATUS_L7OKCD, /* L7 check conditionally passed */ HCHK_STATUS_L7STS, /* L7 response error, for example HTTP 5xx */ HCHK_STATUS_SIZE }; struct check_status { short result; /* one of SRV_CHK_* */ char *info; /* human readable short info */ char *desc; /* long description */ };