]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Set IPPROTO_IP6 for ipv6 sockets otherwise invalid argument error.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 17 Feb 2016 08:02:32 +0000 (08:02 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 17 Feb 2016 08:02:32 +0000 (08:02 +0000)
git-svn-id: file:///svn/unbound/trunk@3625 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/listen_dnsport.c

index b290fbe40d189a3b4a11e6909d4199f648ca9e19..758e55edd3ea114fe2b0d61d5164c0ccf45fd3fb 100644 (file)
@@ -1,3 +1,6 @@
+16 February 2016: Wouter
+       - Set IPPROTO_IP6 for ipv6 sockets otherwise invalid argument error.
+
 15 February 2016: Wouter
        - ip-transparent option for FreeBSD with IP_BINDANY socket option.
        - wait for sendto to drain socket buffers when they are full.
index e7a14979f130415ea5340b4ff7f49d11454c724a..be63439e6bed1ab36c3f68a3f29423b69b105c72 100644 (file)
@@ -189,8 +189,8 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                }
 #elif defined(IP_BINDANY)
                if (transparent &&
-                   setsockopt(s, IPPROTO_IP, IP_BINDANY, (void*)&on,
-                   (socklen_t)sizeof(on)) < 0) {
+                   setsockopt(s, (family==AF_INET6? IPPROTO_IPV6:IPPROTO_IP),
+                   IP_BINDANY, (void*)&on, (socklen_t)sizeof(on)) < 0) {
                        log_warn("setsockopt(.. IP_BINDANY ..) failed: %s",
                        strerror(errno));
                }