diff --git a/app/server/listen.go b/app/server/listen.go new file mode 100644 index 0000000..cb275a6 --- /dev/null +++ b/app/server/listen.go @@ -0,0 +1,37 @@ +package server + +import ( + "crypto/tls" + "net" +) + +const protocol = "tcp" + +func CreateTLSListener(addrinfo string, x509cert, x509key []byte) (net.Listener, error) { + var listen net.Listener + var err error + tlsCert, err := tls.X509KeyPair(x509cert, x509key) + if err != nil { + return listen, err + } + tlsConfig := tls.Config{ + Certificates: []tls.Certificate{tlsCert}, + ClientAuth: tls.NoClientCert, + InsecureSkipVerify: true, + } + listen, err = tls.Listen(protocol, addrinfo, &tlsConfig) + if err != nil { + return listen, err + } + return listen, err +} + +func CreateListener(addrinfo string) (net.Listener, error) { + var listen net.Listener + var err error + listen, err = net.Listen(protocol, addrinfo) + if err != nil { + return listen, err + } + return listen, err +}