]> Cypherpunks repositories - gostls13.git/commitdiff
net: enable UDP broadcast before it is needed (instead of after)
authorRuss Cox <rsc@golang.org>
Mon, 18 Jan 2010 23:59:32 +0000 (15:59 -0800)
committerRuss Cox <rsc@golang.org>
Mon, 18 Jan 2010 23:59:32 +0000 (15:59 -0800)
Fixes #526.

R=r
CC=golang-dev
https://golang.org/cl/186211

src/pkg/net/sock.go
src/pkg/net/udpsock.go

index dbb87d36f6f994dc56c487cf66b3e853bbd451cd..be92095a66154645455975a3d73b6ee46a9f5233 100644 (file)
@@ -35,6 +35,9 @@ func socket(net string, f, p, t int, la, ra syscall.Sockaddr, toAddr func(syscal
        // Allow reuse of recently-used addresses.
        syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1)
 
+       // Allow broadcast.
+       syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_BROADCAST, 1)
+
        if la != nil {
                e = syscall.Bind(s, la)
                if e != 0 {
index 1891f2f8c23218c75905fed6070e015db7fccfc2..f5ad3c88f8ac18423b2190b833d54fd7931ddb38 100644 (file)
@@ -71,11 +71,7 @@ type UDPConn struct {
        fd *netFD
 }
 
-func newUDPConn(fd *netFD) *UDPConn {
-       c := &UDPConn{fd}
-       setsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_BROADCAST, 1)
-       return c
-}
+func newUDPConn(fd *netFD) *UDPConn { return &UDPConn{fd} }
 
 func (c *UDPConn) ok() bool { return c != nil && c.fd != nil }