From 08dcef80bf9a528d36cf8d516cc251f6449f9336 Mon Sep 17 00:00:00 2001
From: wwqgtxx <wwqgtxx@gmail.com>
Date: Wed, 9 Oct 2024 12:04:56 +0800
Subject: [PATCH] fix: mistaken using net.Dialer
 https://github.com/MetaCubeX/mihomo/issues/1572

---
 adapter/outbound/hysteria.go           |  6 +-----
 component/http/http.go                 |  4 ++--
 transport/hysteria/transport/client.go | 25 +------------------------
 3 files changed, 4 insertions(+), 31 deletions(-)

diff --git a/adapter/outbound/hysteria.go b/adapter/outbound/hysteria.go
index a7367b83..55c66c45 100644
--- a/adapter/outbound/hysteria.go
+++ b/adapter/outbound/hysteria.go
@@ -131,11 +131,7 @@ func (c *HysteriaOption) Speed() (uint64, uint64, error) {
 }
 
 func NewHysteria(option HysteriaOption) (*Hysteria, error) {
-	clientTransport := &transport.ClientTransport{
-		Dialer: &net.Dialer{
-			Timeout: 8 * time.Second,
-		},
-	}
+	clientTransport := &transport.ClientTransport{}
 	addr := net.JoinHostPort(option.Server, strconv.Itoa(option.Port))
 	ports := option.Ports
 
diff --git a/component/http/http.go b/component/http/http.go
index 3fc06da3..63ea5be7 100644
--- a/component/http/http.go
+++ b/component/http/http.go
@@ -12,6 +12,7 @@ import (
 	"time"
 
 	"github.com/metacubex/mihomo/component/ca"
+	"github.com/metacubex/mihomo/component/dialer"
 	"github.com/metacubex/mihomo/listener/inner"
 )
 
@@ -71,8 +72,7 @@ func HttpRequestWithProxy(ctx context.Context, url, method string, header map[st
 			if conn, err := inner.HandleTcp(address, specialProxy); err == nil {
 				return conn, nil
 			} else {
-				d := net.Dialer{}
-				return d.DialContext(ctx, network, address)
+				return dialer.DialContext(ctx, network, address)
 			}
 		},
 		TLSClientConfig: ca.GetGlobalTLSConfig(&tls.Config{}),
diff --git a/transport/hysteria/transport/client.go b/transport/hysteria/transport/client.go
index f5cc9f07..91876ea9 100644
--- a/transport/hysteria/transport/client.go
+++ b/transport/hysteria/transport/client.go
@@ -4,7 +4,6 @@ import (
 	"crypto/tls"
 	"fmt"
 	"net"
-	"strings"
 	"time"
 
 	"github.com/metacubex/quic-go"
@@ -16,9 +15,7 @@ import (
 	"github.com/metacubex/mihomo/transport/hysteria/utils"
 )
 
-type ClientTransport struct {
-	Dialer *net.Dialer
-}
+type ClientTransport struct{}
 
 func (ct *ClientTransport) quicPacketConn(proto string, rAddr net.Addr, serverPorts string, obfs obfsPkg.Obfuscator, hopInterval time.Duration, dialer utils.PacketDialer) (net.PacketConn, error) {
 	server := rAddr.String()
@@ -86,23 +83,3 @@ func (ct *ClientTransport) QUICDial(proto string, server string, serverPorts str
 	}
 	return qs, nil
 }
-
-func (ct *ClientTransport) DialTCP(raddr *net.TCPAddr) (*net.TCPConn, error) {
-	conn, err := ct.Dialer.Dial("tcp", raddr.String())
-	if err != nil {
-		return nil, err
-	}
-	return conn.(*net.TCPConn), nil
-}
-
-func (ct *ClientTransport) ListenUDP() (*net.UDPConn, error) {
-	return net.ListenUDP("udp", nil)
-}
-
-func isMultiPortAddr(addr string) bool {
-	_, portStr, err := net.SplitHostPort(addr)
-	if err == nil && (strings.Contains(portStr, ",") || strings.Contains(portStr, "-")) {
-		return true
-	}
-	return false
-}