1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
11 func maxListenerBacklog() int {
12 // TODO: Implement this
13 return syscall
.SOMAXCONN
16 func listenerSockaddr(s syscall
.Handle
, f
int, la syscall
.Sockaddr
, toAddr
func(syscall
.Sockaddr
) Addr
) (syscall
.Sockaddr
, error
) {
21 switch v
:= a
.(type) {
22 case *TCPAddr
, *UnixAddr
:
23 err
:= setDefaultListenerSockopts(s
)
28 if v
.IP
.IsMulticast() {
29 err
:= setDefaultMulticastSockopts(s
)
36 case syscall
.AF_INET6
:
37 v
.IP
= IPv6unspecified
45 func sysSocket(f
, t
, p
int) (syscall
.Handle
, error
) {
46 // See ../syscall/exec_unix.go for description of ForkLock.
47 syscall
.ForkLock
.RLock()
48 s
, err
:= syscall
.Socket(f
, t
, p
)
50 syscall
.CloseOnExec(s
)
52 syscall
.ForkLock
.RUnlock()