MINOR: tproxy: add support for FreeBSD

FreeBSD uses (IPPROTO_IP, IP_BINDANY) and (IPPROTO_IPV6, IPV6_BINDANY)
to enable transparent proxy on a socket.

This patch adds support for the relevant setsockopt() calls.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index f59c23b..0ae359a 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -139,6 +139,9 @@
 #if defined(IP_FREEBIND)
 			    || (setsockopt(fd, SOL_IP, IP_FREEBIND, &one, sizeof(one)) == 0)
 #endif
+#if defined(IP_BINDANY)
+			    || (setsockopt(fd, IPPROTO_IP, IP_BINDANY, &one, sizeof(one)) == 0)
+#endif
 			    )
 				foreign_ok = 1;
 			else
@@ -151,6 +154,9 @@
 #if defined(IPV6_TRANSPARENT)
 			    || (setsockopt(fd, SOL_IPV6, IPV6_TRANSPARENT, &one, sizeof(one)) == 0)
 #endif
+#if defined(IPV6_BINDANY)
+			    || (setsockopt(fd, IPPROTO_IPV6, IPV6_BINDANY, &one, sizeof(one)) == 0)
+#endif
 			    )
 				foreign_ok = 1;
 			else
@@ -645,6 +651,9 @@
 #if defined(IP_FREEBIND)
 			    && (setsockopt(fd, SOL_IP, IP_FREEBIND, &one, sizeof(one)) == -1)
 #endif
+#if defined(IP_BINDANY)
+			    && (setsockopt(fd, IPPROTO_IP, IP_BINDANY, &one, sizeof(one)) == -1)
+#endif
 			    ) {
 				msg = "cannot make listening socket transparent";
 				err |= ERR_ALERT;
@@ -655,6 +664,9 @@
 #if defined(IPV6_TRANSPARENT)
 			    && (setsockopt(fd, SOL_IPV6, IPV6_TRANSPARENT, &one, sizeof(one)) == -1)
 #endif
+#if defined(IPV6_BINDANY)
+			    && (setsockopt(fd, IPPROTO_IPV6, IPV6_BINDANY, &one, sizeof(one)) == -1)
+#endif
 			    ) {
 				msg = "cannot make listening socket transparent";
 				err |= ERR_ALERT;