/* unused: 0x0100, 0x0200, 0x0400 */
#define SRV_SEND_PROXY 0x0800 /* this server talks the PROXY protocol */
#define SRV_NON_STICK 0x1000 /* never add connections allocated to this server to a stick table */
-#define SRV_CHK_RUNNING 0x2000 /* a check is currently running on this server */
/* function which act on servers need to return various errors */
#define SRV_STATUS_OK 0 /* everything is OK. */
#define SRV_CHK_PASSED 0x0002 /* server check succeeded unless FAILED is also set */
#define SRV_CHK_DISABLE 0x0004 /* server returned a "disable" code */
+/* check flags */
+#define CHK_STATE_RUNNING 0x0001 /* this check is currently running */
+
/* various constants */
#define SRV_UWGHT_RANGE 256
#define SRV_UWGHT_MAX (SRV_UWGHT_RANGE)
int send_proxy; /* send a PROXY protocol header with checks */
int inter, fastinter, downinter; /* checks: time in milliseconds */
int result; /* health-check result : SRV_CHK_* */
+ int state; /* health-check result : CHK_* */
int type; /* Check type, one of PR_O2_*_CHK */
struct server *server; /* back-pointer to server */
};
int ret;
int expired = tick_is_expired(t->expire, now_ms);
- if (!(s->state & SRV_CHK_RUNNING)) {
+ if (!(check->state & CHK_STATE_RUNNING)) {
/* no check currently running */
if (!expired) /* woke up too early */
return t;
/* we'll initiate a new check */
set_server_check_status(check, HCHK_STATUS_START, NULL);
- s->state |= SRV_CHK_RUNNING;
+ check->state |= CHK_STATE_RUNNING;
check->bi->p = check->bi->data;
check->bi->i = 0;
check->bo->p = check->bo->data;
/* here, we have seen a synchronous error, no fd was allocated */
- s->state &= ~SRV_CHK_RUNNING;
+ check->state &= ~CHK_STATE_RUNNING;
if (s->health > s->rise) {
s->health--; /* still good */
s->counters.failed_checks++;
set_server_up(check);
}
}
- s->state &= ~SRV_CHK_RUNNING;
+ check->state &= ~CHK_STATE_RUNNING;
rv = 0;
if (global.spread_checks > 0) {
if (sv->state & SRV_CHECKED) {
chunk_appendf(&trash,
"</td><td class=ac><u> %s%s",
- (sv->state & SRV_CHK_RUNNING) ? "* " : "",
+ (sv->check.state & CHK_STATE_RUNNING) ? "* " : "",
get_check_status_info(sv->check.status));
if (sv->check.status >= HCHK_STATUS_L57DATA)