diff --git a/pkg/transport/listener.go b/pkg/transport/listener.go index 0c4c59619..d3c0f4d1d 100644 --- a/pkg/transport/listener.go +++ b/pkg/transport/listener.go @@ -31,7 +31,10 @@ func NewListener(addr string, scheme string, info TLSInfo) (net.Listener, error) return nil, err } - if !info.Empty() && scheme == "https" { + if scheme == "https" { + if info.Empty() { + return nil, fmt.Errorf("cannot listen on TLS for %s: KeyFile and CertFile are not presented", scheme+"://"+addr) + } cfg, err := info.ServerConfig() if err != nil { return nil, err diff --git a/pkg/transport/listener_test.go b/pkg/transport/listener_test.go index 40db7c447..f6565e102 100644 --- a/pkg/transport/listener_test.go +++ b/pkg/transport/listener_test.go @@ -70,6 +70,13 @@ func TestNewListenerTLSInfo(t *testing.T) { } } +func TestNewListenerTLSEmptyInfo(t *testing.T) { + _, err := NewListener("127.0.0.1:0", "https", TLSInfo{}) + if err == nil { + t.Errorf("err = nil, want not presented error") + } +} + func TestNewListenerTLSInfoNonexist(t *testing.T) { tlsInfo := TLSInfo{CertFile: "@badname", KeyFile: "@badname"} _, err := NewListener("127.0.0.1:0", "https", tlsInfo)