MINOR: checks: Use the check as origin when a session is created

Before, the server was used as origin during session creation. It was only used
to get the check associated to the server when a variable is get or set in the
check scope or when a check sample fetch was called. So it seems easier to use
the check as origin of a session. It is also more logical becaues the session is
created by the health-check itself and not its server.
diff --git a/src/checks.c b/src/checks.c
index fb4c962..58bc88d 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -3364,7 +3364,7 @@
 		struct tcpcheck_var *var;
 
 		/* First evaluation, create a session */
-		check->sess = session_new(&checks_fe, NULL, (check->server ? &check->server->obj_type : NULL));
+		check->sess = session_new(&checks_fe, NULL, &check->obj_type);
 		if (!check->sess) {
 			chunk_printf(&trash, "TCPCHK error allocating check session");
 			set_server_check_status(check, HCHK_STATUS_SOCKERR, trash.area);
@@ -4457,13 +4457,13 @@
 {
 	unsigned int buf_offset = ((arg_p[0].type == ARGT_SINT) ? arg_p[0].data.sint : 0);
 	unsigned int buf_size = ((arg_p[1].type == ARGT_SINT) ? arg_p[1].data.sint : 0);
-	struct server *srv = (smp->sess ? objt_server(smp->sess->origin) : NULL);
+	struct check *check = (smp->sess ? objt_check(smp->sess->origin) : NULL);
 	struct buffer *buf;
 
-	if (!srv || !srv->do_check)
+	if (!check)
 		return 0;
 
-	buf = &srv->check.bi;
+	buf = &check->bi;
 	if (buf_offset > b_data(buf))
 		goto no_match;
 	if (buf_offset + buf_size > b_data(buf))
diff --git a/src/vars.c b/src/vars.c
index 0fa3397..a6807fa 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -49,9 +49,9 @@
 	case SCOPE_SESS:
 		return &sess->vars;
 	case SCOPE_CHECK: {
-			struct server *srv = objt_server(sess->origin);
+			struct check *check = objt_check(sess->origin);
 
-			return srv ? &srv->check.vars : NULL;
+			return check ? &check->vars : NULL;
 		}
 	case SCOPE_TXN:
 		return strm ? &strm->vars_txn : NULL;
@@ -78,10 +78,10 @@
 			_HA_ATOMIC_ADD(&strm->vars_txn.size, size);
 		goto scope_sess;
 	case SCOPE_CHECK: {
-			struct server *srv = objt_server(sess->origin);
+			struct check *check = objt_check(sess->origin);
 
-			if (srv != NULL)
-				_HA_ATOMIC_ADD(&srv->check.vars.size, size);
+			if (check)
+				_HA_ATOMIC_ADD(&check->vars.size, size);
 		}
 		/* fall through */
 scope_sess:
@@ -114,10 +114,9 @@
 			return 0;
 		goto scope_sess;
 	case SCOPE_CHECK: {
-			struct server *srv = objt_server(sess->origin);
+			struct check *check = objt_check(sess->origin);
 
-			if (var_check_limit && srv &&
-			    srv->check.vars.size + size > var_check_limit)
+			if (var_check_limit && check && check->vars.size + size > var_check_limit)
 				return 0;
 		}
 		/* fall through */