mirror of
https://github.com/fumiama/terasu.git
synced 2026-06-20 03:50:25 +08:00
feat: support bypass trs
This commit is contained in:
@@ -180,7 +180,11 @@ func (ds *DNSList) DialContext(ctx context.Context, dialer *net.Dialer, firstFra
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
tlsConn = tls.Client(conn, &tls.Config{ServerName: host})
|
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 {
|
if err == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -268,7 +272,7 @@ var IPv4Servers = DNSList{
|
|||||||
|
|
||||||
var DefaultResolver = &net.Resolver{
|
var DefaultResolver = &net.Resolver{
|
||||||
PreferGo: true,
|
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() {
|
if ip.IsIPv6Available.Get() {
|
||||||
return IPv6Servers.DialContext(ctx, nil, terasu.DefaultFirstFragmentLen)
|
return IPv6Servers.DialContext(ctx, nil, terasu.DefaultFirstFragmentLen)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,7 +89,11 @@ var trsHTTP2ClientWithSystemDNS = http.Client{
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
tlsConn = tls.Client(conn, cfg)
|
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 {
|
if err == nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,11 @@ var DefaultClient = http.Client{
|
|||||||
tlsConn = tls.Client(conn, &tls.Config{
|
tlsConn = tls.Client(conn, &tls.Config{
|
||||||
ServerName: host,
|
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 {
|
if err == nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,11 @@ var DefaultClient = http.Client{
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
tlsConn = tls.Client(conn, cfg)
|
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 {
|
if err == nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user