diff --git a/include/proto/checks.h b/include/proto/checks.h
index cc0ab0b..563e01f 100644
--- a/include/proto/checks.h
+++ b/include/proto/checks.h
@@ -69,6 +69,8 @@
 int spoe_prepare_healthcheck_request(char **req, int *len);
 int spoe_handle_healthcheck_response(char *frame, size_t size, char *err, int errlen);
 
+int proxy_parse_tcp_check_opt(char **args, int cur_arg, struct proxy *curpx, struct proxy *defpx,
+			      const char *file, int line);
 int proxy_parse_redis_check_opt(char **args, int cur_arg, struct proxy *curpx, struct proxy *defpx,
 				const char *file, int line);
 int proxy_parse_ssl_hello_chk_opt(char **args, int cur_arg, struct proxy *curpx, struct proxy *defpx,
diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c
index 4c8444c..eb175a1 100644
--- a/src/cfgparse-listen.c
+++ b/src/cfgparse-listen.c
@@ -2370,38 +2370,8 @@
 				goto out;
 		}
 		else if (!strcmp(args[1], "tcp-check")) {
-			struct tcpcheck_rules *rules = &curproxy->tcpcheck_rules;
-
-			/* use raw TCPCHK send/expect to check servers' health */
-			if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[1], NULL))
-				err_code |= ERR_WARN;
-
-			if (rules->flags & TCPCHK_RULES_DEF) {
-				/* Only shared ruleset can be inherited from the default section */
-				rules->flags = 0;
-				rules->list  = NULL;
-			}
-			else if (rules->list && (rules->flags & TCPCHK_RULES_SHARED)) {
-				ha_alert("parsing [%s:%d] : A shared tcp-check ruleset alreayd configured.\n", file, linenum);
-				err_code |= ERR_ALERT | ERR_FATAL;
-				goto out;
-			}
-
-			if (curproxy != &defproxy && !rules->list) {
-				rules->list = calloc(1, sizeof(*rules->list));
-				if (!rules->list) {
-					ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
-					err_code |= ERR_ALERT | ERR_FATAL;
-					goto out;
-				}
-				LIST_INIT(rules->list);
-			}
-
-			free(curproxy->check_req);
-			curproxy->check_req = NULL;
-			curproxy->options2 &= ~PR_O2_CHK_ANY;
-			curproxy->options2 |= PR_O2_TCPCHK_CHK;
-			if (alertif_too_many_args_idx(0, 1, file, linenum, args, &err_code))
+			err_code |= proxy_parse_tcp_check_opt(args, 0, curproxy, &defproxy, file, linenum);
+			if (err_code & ERR_FATAL)
 				goto out;
 		}
 		else if (!strcmp(args[1], "external-check")) {
diff --git a/src/checks.c b/src/checks.c
index ceb53ea..240201b 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -5143,6 +5143,50 @@
 	free(rs);
 }
 
+/* Parses the "option tcp-check" proxy keyword */
+int proxy_parse_tcp_check_opt(char **args, int cur_arg, struct proxy *curpx, struct proxy *defpx,
+			      const char *file, int line)
+{
+	struct tcpcheck_rules *rules = &curpx->tcpcheck_rules;
+	int err_code = 0;
+
+	if (warnifnotcap(curpx, PR_CAP_BE, file, line, args[cur_arg+1], NULL))
+		err_code |= ERR_WARN;
+
+	if (alertif_too_many_args_idx(0, 1, file, line, args, &err_code))
+		goto out;
+
+	if (rules->flags & TCPCHK_RULES_DEF) {
+		/* Only shared ruleset can be inherited from the default section */
+		rules->flags = 0;
+		rules->list  = NULL;
+	}
+	else if (rules->list && (rules->flags & TCPCHK_RULES_SHARED)) {
+		ha_alert("parsing [%s:%d] : A shared tcp-check ruleset alreayd configured.\n", file, line);
+		goto error;
+	}
+
+	if (curpx != defpx && !rules->list) {
+		rules->list = calloc(1, sizeof(*rules->list));
+		if (!rules->list) {
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, line);
+			goto error;
+		}
+		LIST_INIT(rules->list);
+	}
+
+	free(curpx->check_req);
+	curpx->check_req = NULL;
+	curpx->options2 &= ~PR_O2_CHK_ANY;
+	curpx->options2 |= PR_O2_TCPCHK_CHK;
+
+  out:
+	return err_code;
+
+  error:
+	err_code |= ERR_ALERT | ERR_FATAL;
+	goto out;
+}
 
 /* Parses the "option redis-check" proxy keyword */
 int proxy_parse_redis_check_opt(char **args, int cur_arg, struct proxy *curpx, struct proxy *defpx,
