]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Update dnsdist.cc
authorphonedph1 <20867105+phonedph1@users.noreply.github.com>
Thu, 4 Nov 2021 17:13:39 +0000 (11:13 -0600)
committerGitHub <noreply@github.com>
Thu, 4 Nov 2021 17:13:39 +0000 (11:13 -0600)
pdns/dnsdist.cc

index 79aaebaf8b9cc70e7073bd6bbbcfbd5323727c48..186bd58be5081ea49552120c409558ce807e4085 100644 (file)
@@ -2044,7 +2044,7 @@ static void setUpLocalBind(std::unique_ptr<ClientState>& cs)
     int one=1;
     (void)setsockopt(fd, IPPROTO_IP, GEN_IP_PKTINFO, &one, sizeof(one)); // linux supports this, so why not - might fail on other systems
 #ifdef IPV6_RECVPKTINFO
-    if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &one, sizeof(one)) < 0 &&
+    if (cs->local.sin4.sin_family == AF_INET6 && setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &one, sizeof(one)) < 0 &&
         !g_warned_ipv6_recvpktinfo) {
         warnlog("Warning: IPV6_RECVPKTINFO setsockopt failed: %s", stringerror());
         g_warned_ipv6_recvpktinfo = true;