diff --git a/dns/dns.go b/dns/dns.go index 30daf8e..5542c78 100644 --- a/dns/dns.go +++ b/dns/dns.go @@ -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) } diff --git a/dns/doh.go b/dns/doh.go index 76b118b..4611cc0 100644 --- a/dns/doh.go +++ b/dns/doh.go @@ -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 } diff --git a/http/http.go b/http/http.go index 7e55fd0..913031c 100644 --- a/http/http.go +++ b/http/http.go @@ -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 } diff --git a/http2/http2.go b/http2/http2.go index c6e738b..1d4b7e0 100644 --- a/http2/http2.go +++ b/http2/http2.go @@ -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 }