Translate "tls" network to "tcp"

This commit is contained in:
Sasha Koshka 2025-10-20 17:56:42 -04:00
parent 09b2259a8c
commit c9480ba016
2 changed files with 13 additions and 1 deletions

12
dial.go
View File

@ -42,6 +42,8 @@ func DialQUIC(ctx context.Context, network, address string, tlsConf *tls.Config)
// DialTLS opens a connection to a server over TLS.
func DialTLS(ctx context.Context, network, address string, tlsConf *tls.Config) (Conn, error) {
network, err := tlsNetworkToTCPNetwork(network)
if err != nil { return nil, err }
conn, err := tls.Dial(network, address, tlsConf)
if err != nil { return nil, err }
return AdaptA(conn, ClientSide), nil
@ -73,7 +75,6 @@ func tlsConfig(conf *tls.Config) *tls.Config {
return conf
}
func quicNetworkToUDPNetwork(network string) (string, error) {
switch network {
case "quic4": return "udp4", nil
@ -82,3 +83,12 @@ func quicNetworkToUDPNetwork(network string) (string, error) {
default: return "", ErrUnknownNetwork
}
}
func tlsNetworkToTCPNetwork(network string) (string, error) {
switch network {
case "tls4": return "tcp4", nil
case "tls6": return "tcp6", nil
case "tls": return "tcp", nil
default: return "", ErrUnknownNetwork
}
}

View File

@ -57,6 +57,8 @@ func ListenQUIC(network, address string, tlsConf *tls.Config) (Listener, error)
// ListenTLS listens for incoming HOPP connections using a TLS socket as a
// transport. The network must be "tcp".
func ListenTLS(network, address string, tlsConf *tls.Config) (Listener, error) {
network, err := tlsNetworkToTCPNetwork(network)
if err != nil { return nil, err }
listener, err := tls.Listen(network, address, tlsConf)
if err != nil { return nil, err }
return &netListenerWrapper {