a531a67461
Signed-off-by: Amit Krishnan <krish.amit@gmail.com>
31 lines
659 B
Go
31 lines
659 B
Go
package listeners
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"fmt"
|
|
"net"
|
|
|
|
"github.com/docker/go-connections/sockets"
|
|
)
|
|
|
|
// Init creates new listeners for the server.
|
|
func Init(proto, addr, socketGroup string, tlsConfig *tls.Config) (ls []net.Listener, err error) {
|
|
switch proto {
|
|
case "tcp":
|
|
l, err := sockets.NewTCPSocket(addr, tlsConfig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
ls = append(ls, l)
|
|
case "unix":
|
|
l, err := sockets.NewUnixSocket(addr, socketGroup)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("can't create unix socket %s: %v", addr, err)
|
|
}
|
|
ls = append(ls, l)
|
|
default:
|
|
return nil, fmt.Errorf("Invalid protocol format: %q", proto)
|
|
}
|
|
|
|
return
|
|
}
|