MINOR: checks: Add the via-socks4 option for tcp-check connect rules

With this option, it is possible to establish the connection opened by a
tcp-check connect rule using upstream socks4 proxy. Info from the socks4
parameter on the server are used.
diff --git a/doc/configuration.txt b/doc/configuration.txt
index 8aaf912..649ded2 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -9824,6 +9824,8 @@
 
     send-proxy   send a PROXY protocol string
 
+    via-socks4   enables outgoing health checks using upstream socks4 proxy.
+
     ssl          opens a ciphered connection
 
     sni <sni>    specifies the SNI to use to do health checks over SSL.
diff --git a/include/types/checks.h b/include/types/checks.h
index 14513c9..0edc726 100644
--- a/include/types/checks.h
+++ b/include/types/checks.h
@@ -217,6 +217,7 @@
 #define TCPCHK_OPT_SSL             0x0002  /* SSL connection */
 #define TCPCHK_OPT_LINGER          0x0004  /* Do not RST connection, let it linger */
 #define TCPCHK_OPT_DEFAULT_CONNECT 0x0008  /* Do a connect using server params */
+#define TCPCHK_OPT_SOCKS4          0x0010  /* check the connection via socks4 proxy */
 
 struct tcpcheck_connect {
 	uint16_t port;    /* port to connect to */
diff --git a/src/checks.c b/src/checks.c
index b2322b2..97f68f1 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -2922,7 +2922,10 @@
 				ssl_sock_set_servername(conn, connect->sni);
 		}
 #endif
-		/* TODO: add support for sock4  option */
+		if ((connect->options & TCPCHK_OPT_SOCKS4) && (s->flags & SRV_F_SOCKS4_PROXY)) {
+			conn->send_proxy_ofs = 1;
+			conn->flags |= CO_FL_SOCKS4;
+		}
 		if (connect->options & TCPCHK_OPT_SEND_PROXY) {
 			conn->send_proxy_ofs = 1;
 			conn->flags |= CO_FL_SEND_PROXY;
@@ -4118,6 +4121,8 @@
 		}
 		else if (strcmp(args[cur_arg], "send-proxy") == 0)
 			conn_opts |= TCPCHK_OPT_SEND_PROXY;
+		else if (strcmp(args[cur_arg], "via-socks4") == 0)
+			conn_opts |= TCPCHK_OPT_SOCKS4;
 		else if (strcmp(args[cur_arg], "linger") == 0)
 			conn_opts |= TCPCHK_OPT_LINGER;
 #ifdef USE_OPENSSL
@@ -4145,7 +4150,7 @@
 #ifdef USE_OPENSSL
 				  ", 'ssl', 'sni'"
 #endif /* USE_OPENSSL */
-				  " or 'linger' but got '%s' as argument.",
+				  " or 'via-socks4', 'linger' but got '%s' as argument.",
 				  args[cur_arg]);
 			goto error;
 		}