From 5dc944cf21a57b2f06cb51ac91682cfba1ebe84f Mon Sep 17 00:00:00 2001 From: brent saner Date: Mon, 12 Aug 2024 15:59:38 -0400 Subject: [PATCH] v1.5.1 FIXES: * cryptparse.TlsUri.ToConn and cryptparse.TlsUri.ToTlsConn would previously use incorrect "host" parameter during dial for UDS/IPC sockets. --- cryptparse/funcs_tlsuri.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/cryptparse/funcs_tlsuri.go b/cryptparse/funcs_tlsuri.go index 6b16e0d..1586603 100644 --- a/cryptparse/funcs_tlsuri.go +++ b/cryptparse/funcs_tlsuri.go @@ -38,6 +38,7 @@ func (t *TlsUri) WithConn(underlying net.Conn) (conn *tls.Conn, err error) { func (t *TlsUri) ToConn() (conn net.Conn, err error) { var ok bool + var connHost string var params map[string][]string var netType string = DefaultNetType @@ -48,8 +49,16 @@ func (t *TlsUri) ToConn() (conn net.Conn, err error) { netType = params[TlsUriParamNet][0] } } + netType = strings.ToLower(netType) - if conn, err = net.Dial(netType, t.Host); err != nil { + switch netType { + case "unix", "unixgram", "unixpacket": + connHost = t.Path + default: + connHost = t.Host + } + + if conn, err = net.Dial(netType, connHost); err != nil { return } @@ -79,6 +88,7 @@ func (t *TlsUri) ToTlsConn() (conn *tls.Conn, err error) { var ok bool var cfg *tls.Config + var connHost string var params map[string][]string var netType string = DefaultNetType @@ -93,8 +103,16 @@ func (t *TlsUri) ToTlsConn() (conn *tls.Conn, err error) { netType = params[TlsUriParamNet][0] } } + netType = strings.ToLower(netType) - if conn, err = tls.Dial(netType, t.Host, cfg); err != nil { + switch netType { + case "unix", "unixgram", "unixpacket": + connHost = t.Path + default: + connHost = t.Host + } + + if conn, err = tls.Dial(netType, connHost, cfg); err != nil { return }