MEDIUM: Add state to struct check
Add state to struct check. This is currently used to store one bit, CHK_RUNNING, which is set if a check is running and clear otherwise. This bit was previously SRV_CHK_RUNNING of the state element of struct server. This is in preparation for associating a agent check with a server which runs as well as the server's existing check. Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
parent
69d29f996b
commit
cd5d7b678e
@ -55,7 +55,6 @@
|
||||
/* 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. */
|
||||
@ -70,6 +69,9 @@
|
||||
#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)
|
||||
@ -117,6 +119,7 @@ struct check {
|
||||
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 */
|
||||
};
|
||||
|
@ -1315,7 +1315,7 @@ static struct task *process_chk(struct task *t)
|
||||
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;
|
||||
@ -1329,7 +1329,7 @@ static struct task *process_chk(struct task *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;
|
||||
@ -1420,7 +1420,7 @@ static struct task *process_chk(struct task *t)
|
||||
|
||||
/* 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++;
|
||||
@ -1516,7 +1516,7 @@ static struct task *process_chk(struct task *t)
|
||||
set_server_up(check);
|
||||
}
|
||||
}
|
||||
s->state &= ~SRV_CHK_RUNNING;
|
||||
check->state &= ~CHK_STATE_RUNNING;
|
||||
|
||||
rv = 0;
|
||||
if (global.spread_checks > 0) {
|
||||
|
@ -2273,7 +2273,7 @@ static int stats_dump_sv_stats(struct stream_interface *si, struct proxy *px, in
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user