On Tue, Nov 05, 2013 at 06:04:35PM +0900, Simon Horman wrote:
> 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 <[email protected]>
s/[+]renesas//
>
> ---
>
> v8
> * Use CHK_STATE_RUNNING instead of CHK_RUNNING
>
> Notes by Willy on v6:
> Please use CHK_STATE_RUNNING instead of CHK_RUNNING so that it's
> easier to know it is related to the state attribute of the check.
>
> Also, we have many HCHK_* and now CHK_* as well, so I wonder how/when
> this will become confusing.
> ---
> include/types/server.h | 5 ++++-
> src/checks.c | 8 ++++----
> src/dumpstats.c | 2 +-
> 3 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/include/types/server.h b/include/types/server.h
> index 0e4c33e..bcde01b 100644
> --- a/include/types/server.h
> +++ b/include/types/server.h
> @@ -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 */
> };
> diff --git a/src/checks.c b/src/checks.c
> index a2ff237..c37afbd 100644
> --- a/src/checks.c
> +++ b/src/checks.c
> @@ -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) {
> diff --git a/src/dumpstats.c b/src/dumpstats.c
> index 9a422c1..be0aac6 100644
> --- a/src/dumpstats.c
> +++ b/src/dumpstats.c
> @@ -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)
> --
> 1.8.4
>