github.com/jiasir/docker@v1.3.3-0.20170609024000-252e610103e7/pkg/listeners/listeners_solaris.go (about) 1 package listeners 2 3 import ( 4 "crypto/tls" 5 "fmt" 6 "net" 7 "os" 8 9 "github.com/Sirupsen/logrus" 10 "github.com/docker/go-connections/sockets" 11 ) 12 13 // Init creates new listeners for the server. 14 func Init(proto, addr, socketGroup string, tlsConfig *tls.Config) (ls []net.Listener, err error) { 15 switch proto { 16 case "tcp": 17 l, err := sockets.NewTCPSocket(addr, tlsConfig) 18 if err != nil { 19 return nil, err 20 } 21 ls = append(ls, l) 22 case "unix": 23 gid, err := lookupGID(socketGroup) 24 if err != nil { 25 if socketGroup != "" { 26 if socketGroup != defaultSocketGroup { 27 return nil, err 28 } 29 logrus.Warnf("could not change group %s to %s: %v", addr, defaultSocketGroup, err) 30 } 31 gid = os.Getgid() 32 } 33 l, err := sockets.NewUnixSocket(addr, gid) 34 if err != nil { 35 return nil, fmt.Errorf("can't create unix socket %s: %v", addr, err) 36 } 37 ls = append(ls, l) 38 default: 39 return nil, fmt.Errorf("Invalid protocol format: %q", proto) 40 } 41 42 return 43 }