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 }