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>
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 @@
 	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 @@
 	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 @@
 		/* 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 @@
 
 		/* 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 @@
 				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 @@
 		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)