Commit d4726655 authored by Russ Cox's avatar Russ Cox

net: enable v4-over-v6 on ip sockets

Not all OS make that the default.
Can finally do this now that the syscall package
has the right definitions.

Fixes #679.

R=r
CC=golang-dev
https://golang.org/cl/2204048
parent b031b5cf
...@@ -38,6 +38,12 @@ func socket(net string, f, p, t int, la, ra syscall.Sockaddr, toAddr func(syscal ...@@ -38,6 +38,12 @@ func socket(net string, f, p, t int, la, ra syscall.Sockaddr, toAddr func(syscal
// Allow broadcast. // Allow broadcast.
syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_BROADCAST, 1) syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_BROADCAST, 1)
if f == syscall.AF_INET6 {
// using ip, tcp, udp, etc.
// allow both protocols even if the OS default is otherwise.
syscall.SetsockoptInt(s, syscall.IPPROTO_IPV6, syscall.IPV6_V6ONLY, 0)
}
if la != nil { if la != nil {
e = syscall.Bind(s, la) e = syscall.Bind(s, la)
if e != 0 { if e != 0 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment