Use transport RoundTrip

This commit is contained in:
H1JK 2022-08-27 17:42:17 +08:00
parent 4360e71743
commit 518dbe04e1

View File

@ -27,7 +27,7 @@ type Client struct {
ctx context.Context ctx context.Context
dialer N.Dialer dialer N.Dialer
serverAddr M.Socksaddr serverAddr M.Socksaddr
client *http.Client transport *http.Transport
options option.V2RayGRPCOptions options option.V2RayGRPCOptions
url *url.URL url *url.URL
} }
@ -38,15 +38,13 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt
dialer: dialer, dialer: dialer,
serverAddr: serverAddr, serverAddr: serverAddr,
options: options, options: options,
client: &http.Client{ transport: &http.Transport{
Transport: &http.Transport{
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) { DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
return dialer.DialContext(ctx, network, M.ParseSocksaddr(addr)) return dialer.DialContext(ctx, network, M.ParseSocksaddr(addr))
}, },
ForceAttemptHTTP2: true, ForceAttemptHTTP2: true,
TLSClientConfig: tlsConfig, TLSClientConfig: tlsConfig,
}, },
},
url: &url.URL{ url: &url.URL{
Scheme: "https", Scheme: "https",
Host: serverAddr.String(), Host: serverAddr.String(),
@ -68,7 +66,7 @@ func (c *Client) DialContext(ctx context.Context) (net.Conn, error) {
request = request.WithContext(ctx) request = request.WithContext(ctx)
conn := newLateGunConn(pipeInWriter) conn := newLateGunConn(pipeInWriter)
go func() { go func() {
response, err := c.client.Do(request) response, err := c.transport.RoundTrip(request)
if err == nil { if err == nil {
conn.setup(response.Body, nil) conn.setup(response.Body, nil)
} else { } else {