1
0
mirror of https://github.com/fumiama/terasu.git synced 2026-06-05 01:00:23 +08:00

feat: support bypass trs

This commit is contained in:
源文雨
2025-10-06 01:33:52 +08:00
parent 614a6d88d4
commit 15625807a5
4 changed files with 21 additions and 5 deletions

View File

@@ -180,7 +180,11 @@ func (ds *DNSList) DialContext(ctx context.Context, dialer *net.Dialer, firstFra
continue
}
tlsConn = tls.Client(conn, &tls.Config{ServerName: host})
err = terasu.Use(tlsConn).HandshakeContext(ctx, firstFragmentLen)
if firstFragmentLen > 0 {
err = terasu.Use(tlsConn).HandshakeContext(ctx, firstFragmentLen)
} else {
err = tlsConn.HandshakeContext(ctx)
}
if err == nil {
return nil
}
@@ -268,7 +272,7 @@ var IPv4Servers = DNSList{
var DefaultResolver = &net.Resolver{
PreferGo: true,
Dial: func(ctx context.Context, _, _ string) (net.Conn, error) {
Dial: func(ctx context.Context, nw, _ string) (net.Conn, error) {
if ip.IsIPv6Available.Get() {
return IPv6Servers.DialContext(ctx, nil, terasu.DefaultFirstFragmentLen)
}

View File

@@ -89,7 +89,11 @@ var trsHTTP2ClientWithSystemDNS = http.Client{
continue
}
tlsConn = tls.Client(conn, cfg)
err = terasu.Use(tlsConn).HandshakeContext(ctx, terasu.DefaultFirstFragmentLen)
if terasu.DefaultFirstFragmentLen > 0 {
err = terasu.Use(tlsConn).HandshakeContext(ctx, terasu.DefaultFirstFragmentLen)
} else {
err = tlsConn.HandshakeContext(ctx)
}
if err == nil {
break
}

View File

@@ -61,7 +61,11 @@ var DefaultClient = http.Client{
tlsConn = tls.Client(conn, &tls.Config{
ServerName: host,
})
err = terasu.Use(tlsConn).HandshakeContext(ctx, terasu.DefaultFirstFragmentLen)
if terasu.DefaultFirstFragmentLen > 0 {
err = terasu.Use(tlsConn).HandshakeContext(ctx, terasu.DefaultFirstFragmentLen)
} else {
err = tlsConn.HandshakeContext(ctx)
}
if err == nil {
break
}

View File

@@ -59,7 +59,11 @@ var DefaultClient = http.Client{
continue
}
tlsConn = tls.Client(conn, cfg)
err = terasu.Use(tlsConn).HandshakeContext(ctx, terasu.DefaultFirstFragmentLen)
if terasu.DefaultFirstFragmentLen > 0 {
err = terasu.Use(tlsConn).HandshakeContext(ctx, terasu.DefaultFirstFragmentLen)
} else {
err = tlsConn.HandshakeContext(ctx)
}
if err == nil {
break
}