From bfa016150b886b76cc1a4050ee8b6e98d0e0e9ba Mon Sep 17 00:00:00 2001 From: aubble Date: Thu, 20 Aug 2015 14:31:15 -0400 Subject: [PATCH] crypto/tls: allow tls.Listen when only GetCertificate is provided. Go 1.5 allowed TLS connections where Config.Certificates was nil as long as the GetCertificate callback was given. However, tls.Listen wasn't updated accordingly until this change. Change-Id: I5f67f323f63c988ff79642f3daf8a6b2a153e6b2 Reviewed-on: https://go-review.googlesource.com/13801 Reviewed-by: Adam Langley --- src/crypto/tls/tls.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/crypto/tls/tls.go b/src/crypto/tls/tls.go index 0b1c3778ad..f6d5bb1b9a 100644 --- a/src/crypto/tls/tls.go +++ b/src/crypto/tls/tls.go @@ -67,8 +67,8 @@ func NewListener(inner net.Listener, config *Config) net.Listener { // The configuration config must be non-nil and must have // at least one certificate. func Listen(network, laddr string, config *Config) (net.Listener, error) { - if config == nil || len(config.Certificates) == 0 { - return nil, errors.New("tls.Listen: no certificates in configuration") + if config == nil || (len(config.Certificates) == 0 && config.GetCertificate == nil) { + return nil, errors.New("tls: neither Certificates nor GetCertificate set in Config") } l, err := net.Listen(network, laddr) if err != nil { -- 2.48.1