MINOR: checks: replace state DISABLED with CONFIGURED and ENABLED

At the moment, health checks and agent checks are tied : no agent
check is emitted if no health check is enabled. Other parameters
are considered in the condition for letting checks run. It will
help us selectively enable checks (agent and regular checks) to be
know whether they're enabled/disabled and configured or not. Now
we can already emit an error when trying to enable an unconfigured
agent.
diff --git a/include/types/checks.h b/include/types/checks.h
index b944cd3..252cb15 100644
--- a/include/types/checks.h
+++ b/include/types/checks.h
@@ -36,7 +36,8 @@
 
 /* flags used by check->state */
 #define CHK_ST_INPROGRESS       0x0001  /* a check is currently running */
-#define CHK_ST_DISABLED         0x0002  /* this check is currently administratively disabled */
+#define CHK_ST_CONFIGURED       0x0002  /* this check is configured and may be enabled */
+#define CHK_ST_ENABLED          0x0004  /* this check is currently administratively enabled */
 
 /* check status */
 enum {
diff --git a/src/cfgparse.c b/src/cfgparse.c
index aa8bb90..b675941 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -5123,6 +5123,7 @@
 				goto out;
 			}
 
+			newsrv->check.state |= CHK_ST_CONFIGURED | CHK_ST_ENABLED;
 			newsrv->state |= SRV_CHECKED;
 		}
 
@@ -5145,6 +5146,7 @@
 				goto out;
 			}
 
+			newsrv->agent.state |= CHK_ST_CONFIGURED | CHK_ST_ENABLED;
 			newsrv->state |= SRV_AGENT_CHECKED;
 		}
 
diff --git a/src/checks.c b/src/checks.c
index 3215577..49bb411 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1165,7 +1165,7 @@
 		 * parameter of this function is the agent or check field
 		 * of the server.
 		 */
-		disabled = check->server->agent.state & CHK_ST_DISABLED;
+		disabled = !(check->server->agent.state & CHK_ST_ENABLED);
 
 		if (strchr(check->bi->data, '%')) {
 			if (disabled)
@@ -1509,7 +1509,7 @@
 		if (!(s->state & SRV_CHECKED) ||
 		    s->proxy->state == PR_STSTOPPED ||
 		    (s->state & SRV_MAINTAIN) ||
-		    (check->state & CHK_ST_DISABLED))
+		    !(check->state & CHK_ST_ENABLED))
 			goto reschedule;
 
 		/* we'll initiate a new check */
diff --git a/src/dumpstats.c b/src/dumpstats.c
index ff8557a..350b111 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -1528,7 +1528,13 @@
 			if (!sv)
 				return 1;
 
-			sv->agent.state &= ~CHK_ST_DISABLED;
+			if (!(sv->agent.state & CHK_ST_CONFIGURED)) {
+				appctx->ctx.cli.msg = "Agent was not configured on this server, cannot enable.\n";
+				appctx->st0 = STAT_CLI_PRINT;
+				return 1;
+			}
+
+			sv->agent.state |= CHK_ST_ENABLED;
 			return 1;
 		}
 		if (strcmp(args[1], "server") == 0) {
@@ -1599,7 +1605,7 @@
 			if (!sv)
 				return 1;
 
-			sv->agent.state |= CHK_ST_DISABLED;
+			sv->agent.state &= ~CHK_ST_ENABLED;
 			return 1;
 		}
 		else if (strcmp(args[1], "server") == 0) {