From: Tom Clegg Date: Wed, 13 Jan 2021 05:10:09 +0000 (-0500) Subject: 17170: Fix dial when API host var is host:port. X-Git-Tag: 2.2.0~135^2~31 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/4cc07d6ab4ae16bd6bc69b2c8022414d66ee4113?ds=sidebyside 17170: Fix dial when API host var is host:port. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/lib/controller/rpc/conn.go b/lib/controller/rpc/conn.go index 75603bb59d..9b2695b551 100644 --- a/lib/controller/rpc/conn.go +++ b/lib/controller/rpc/conn.go @@ -293,7 +293,12 @@ func (conn *Conn) ContainerUnlock(ctx context.Context, options arvados.GetOption // a running container. If the returned error is nil, the caller is // responsible for closing sshconn.Conn. func (conn *Conn) ContainerSSH(ctx context.Context, options arvados.ContainerSSHOptions) (sshconn arvados.ContainerSSHConnection, err error) { - netconn, err := tls.Dial("tcp", net.JoinHostPort(conn.baseURL.Host, "https"), nil) + addr := conn.baseURL.Host + if strings.Index(addr, ":") < 1 || (strings.Contains(addr, "::") && addr[0] != '[') { + // hostname or ::1 or 1::1 + addr = net.JoinHostPort(addr, "https") + } + netconn, err := tls.Dial("tcp", addr, conn.httpClient.Transport.(*http.Transport).TLSClientConfig) if err != nil { return }