Revert "[BUILD] backend.c and checks.c did not build without tproxy !"

This reverts commit 3c3c0122f84d72eae1c4ef4b1826bfdbef7d95e6.
This commit was buggy as it also removed previous tproxy changes !
diff --git a/src/backend.c b/src/backend.c
index a9d42a6..20e3a04 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1059,6 +1059,13 @@
 		return SRV_STATUS_INTERNAL;
 
 	if (s->flags & SN_ASSIGNED) {
+		if ((s->flags & SN_REDIRECTABLE) && s->srv && s->srv->rdr_len) {
+			/* server scheduled for redirection, and already assigned. We
+			 * don't want to go further nor check the queue.
+			 */
+			return SRV_STATUS_OK;
+		}
+
 		if (s->srv && s->srv->maxqueue > 0 && s->srv->nbpend >= s->srv->maxqueue) {
 			s->flags &= ~(SN_DIRECT | SN_ASSIGNED | SN_ADDR_SET);
 			s->srv = NULL;
@@ -1084,6 +1091,13 @@
 	err = assign_server(s);
 	switch (err) {
 	case SRV_STATUS_OK:
+		if ((s->flags & SN_REDIRECTABLE) && s->srv && s->srv->rdr_len) {
+			/* server supporting redirection and it is possible.
+			 * Let's report that and ignore maxconn !
+			 */
+			return SRV_STATUS_OK;
+		}
+
 		/* in balance mode, we might have servers with connection limits */
 		if (s->srv &&
 		    s->srv->maxconn && s->srv->cur_sess >= srv_dynamic_maxconn(s->srv)) {
@@ -1189,7 +1203,6 @@
 		struct sockaddr_in *remote = NULL;
 		int ret, flags = 0;
 
-#if defined(CONFIG_HAP_CTTPROXY) || defined(CONFIG_HAP_LINUX_TPROXY)
 		switch (s->srv->state & SRV_TPROXY_MASK) {
 		case SRV_TPROXY_ADDR:
 			remote = (struct sockaddr_in *)&s->srv->tproxy_addr;
@@ -1204,7 +1217,6 @@
 			remote = (struct sockaddr_in *)&s->cli_addr;
 			break;
 		}
-#endif
 		ret = tcpv4_bind_socket(fd, flags, &s->srv->source_addr, remote);
 		if (ret) {
 			close(fd);
@@ -1228,7 +1240,6 @@
 		struct sockaddr_in *remote = NULL;
 		int ret, flags = 0;
 
-#if defined(CONFIG_HAP_CTTPROXY) || defined(CONFIG_HAP_LINUX_TPROXY)
 		switch (s->be->options & PR_O_TPXY_MASK) {
 		case PR_O_TPXY_ADDR:
 			remote = (struct sockaddr_in *)&s->be->tproxy_addr;
@@ -1243,7 +1254,7 @@
 			remote = (struct sockaddr_in *)&s->cli_addr;
 			break;
 		}
-#endif
+
 		ret = tcpv4_bind_socket(fd, flags, &s->be->source_addr, remote);
 		if (ret) {
 			close(fd);