]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: tcp: use IPPROTO_IPV6 instead of SOL_IPV6 on FreeBSD/MacOS
authorWilly Tarreau <w@1wt.eu>
Wed, 31 Mar 2021 06:29:27 +0000 (08:29 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 31 Mar 2021 06:29:27 +0000 (08:29 +0200)
Lukas reported in issue #1203 that the previous fix for silent-drop in
commit ab79ee8b1 ("BUG/MINOR: tcp: fix silent-drop workaround for IPv6")
breaks the build on FreeBSD/MacOS due to SOL_IPV6 not being defined. On
these platforms, IPPROTO_IPV6 must be used instead, so this should fix
it.

This needs to be backported to whatever version the fix above is backported
to.

src/tcp_act.c

index 3bb4ab86c4080d3ed2c6af3c3fa3d5ca7f2e44e5..fa0a9898b54a0c4fe6e7967d217354ea7f5c4f50 100644 (file)
@@ -211,8 +211,13 @@ static enum act_return tcp_exec_action_silent_drop(struct act_rule *rule, struct
                setsockopt(conn->handle.fd, SOL_IP, IP_TTL, &one, sizeof(one));
 #endif
 #ifdef IPV6_UNICAST_HOPS
+#if defined(SOL_IPV6)
        if (conn->src && conn->src->ss_family == AF_INET6)
                setsockopt(conn->handle.fd, SOL_IPV6, IPV6_UNICAST_HOPS, &one, sizeof(one));
+#elif defined(IPPROTO_IPV6)
+       if (conn->src && conn->src->ss_family == AF_INET6)
+               setsockopt(conn->handle.fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &one, sizeof(one));
+#endif
 #endif
  out:
        /* kill the stream if any */