From: aubble Date: Thu, 20 Aug 2015 18:31:15 +0000 (-0400) Subject: crypto/tls: allow tls.Listen when only GetCertificate is provided. X-Git-Tag: go1.6beta1~1232 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bfa016150b886b76cc1a4050ee8b6e98d0e0e9ba;p=gostls13.git 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 --- 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 {