RAW: Allow setting ALPN http/1.1 for non-REALITY uTLS

https://github.com/XTLS/Xray-core/issues/4313#issuecomment-2611889517
This commit is contained in:
RPRX 2025-01-25 11:15:42 +00:00 committed by GitHub
parent 2522cfd7be
commit 740a6b0dcd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -24,8 +24,14 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me
tlsConfig := config.GetTLSConfig(tls.WithDestination(dest))
if fingerprint := tls.GetFingerprint(config.Fingerprint); fingerprint != nil {
conn = tls.UClient(conn, tlsConfig, fingerprint)
if err := conn.(*tls.UConn).HandshakeContext(ctx); err != nil {
return nil, err
if len(tlsConfig.NextProtos) == 1 && tlsConfig.NextProtos[0] == "http/1.1" {
if err := conn.(*tls.UConn).WebsocketHandshakeContext(ctx); err != nil {
return nil, err
}
} else {
if err := conn.(*tls.UConn).HandshakeContext(ctx); err != nil {
return nil, err
}
}
} else {
conn = tls.Client(conn, tlsConfig)