| // Copyright 2009 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| // +build darwin freebsd linux netbsd openbsd |
| func listenerSockaddr(s, f int, laddr sockaddr) (syscall.Sockaddr, error) { |
| switch laddr := laddr.(type) { |
| case *TCPAddr, *UnixAddr: |
| if err := setDefaultListenerSockopts(s); err != nil { |
| if laddr.IP != nil && laddr.IP.IsMulticast() { |
| if err := setDefaultMulticastSockopts(s); err != nil { |
| addr.IP = IPv6unspecified |