Merge pull request #756 from heyitsanthony/fix-cred-clobber

credentials: don't overwrite ServerName in given config
This commit is contained in:
Qi Zhao
2016-07-14 15:09:51 -07:00
committed by GitHub

View File

@ -151,14 +151,16 @@ func (c *tlsCreds) ClientHandshake(addr string, rawConn net.Conn, timeout time.D
errChannel <- timeoutError{} errChannel <- timeoutError{}
}) })
} }
// use local cfg to avoid clobbering ServerName if using multiple endpoints
cfg := *c.config
if c.config.ServerName == "" { if c.config.ServerName == "" {
colonPos := strings.LastIndex(addr, ":") colonPos := strings.LastIndex(addr, ":")
if colonPos == -1 { if colonPos == -1 {
colonPos = len(addr) colonPos = len(addr)
} }
c.config.ServerName = addr[:colonPos] cfg.ServerName = addr[:colonPos]
} }
conn := tls.Client(rawConn, c.config) conn := tls.Client(rawConn, &cfg)
if timeout == 0 { if timeout == 0 {
err = conn.Handshake() err = conn.Handshake()
} else { } else {