From e895bfa390d682167f53f4e4660bfa5d49c5bb79 Mon Sep 17 00:00:00 2001 From: An Phung <an.phung@limina.com> Date: Tue, 22 Oct 2019 14:48:33 +0200 Subject: [PATCH] Add server name to tls config --- initiator.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/initiator.go b/initiator.go index 2ce02ace..59289095 100644 --- a/initiator.go +++ b/initiator.go @@ -3,9 +3,12 @@ package quickfix import ( "bufio" "crypto/tls" - "golang.org/x/net/proxy" + "net" + "net/url" "sync" "time" + + "golang.org/x/net/proxy" ) //Initiator initiates connections and processes messages for all sessions. @@ -150,6 +153,11 @@ func (i *Initiator) handleConnection(session *session, tlsConfig *tls.Config, di session.log.OnEventf("Failed to connect: %v", err) goto reconnect } else if tlsConfig != nil { + myURL := url.URL{Host: address} + tlsConfig.ServerName = "" + if net.ParseIP(myURL.Hostname()) == nil { + tlsConfig.ServerName = myURL.Hostname() + } tlsConn := tls.Client(netConn, tlsConfig) if err = tlsConn.Handshake(); err != nil { session.log.OnEventf("Failed handshake: %v", err) -- GitLab