Liu Song’s Projects


~/Projects/clash-pro

git clone https://code.lsong.org/clash-pro

Commit

Commit
8c0fbb3665364befcefc2dd72f2177fe54767085
Author
metacubex <[email protected]>
Date
2022-11-28 19:52:55 +0800 +0800
Diffstat
 adapter/adapter.go | 1 +
 adapter/outbound/base.go | 9 +++++++++
 adapter/outbound/hysteria.go | 4 ++--
 adapter/outbound/tuic.go | 2 ++
 constant/adapters.go | 1 +

chore: restful api display fast-open for tuic and hysteria


diff --git a/adapter/adapter.go b/adapter/adapter.go
index aa860ed463e58e79b50efe55349e7c5af047579d..feef72be477db79218ba8b13c50b49b41ff02d3c 100644
--- a/adapter/adapter.go
+++ b/adapter/adapter.go
@@ -92,6 +92,7 @@ 	_ = json.Unmarshal(inner, &mapping)
 	mapping["history"] = p.DelayHistory()
 	mapping["name"] = p.Name()
 	mapping["udp"] = p.SupportUDP()
+	mapping["tfo"] = p.SupportTFO()
 	return json.Marshal(mapping)
 }
 




diff --git a/adapter/outbound/base.go b/adapter/outbound/base.go
index 145a3f97ffb597afd1bcf0843d4246919eb80d13..a7e068ddd31312d1b7bee0fdfa8e8e0f4c0447ee 100644
--- a/adapter/outbound/base.go
+++ b/adapter/outbound/base.go
@@ -19,6 +19,8 @@ 	iface  string
 	tp     C.AdapterType
 	udp    bool
 package outbound
+			b.id = id.String()
+package outbound
 	"strings"
 	id     string
 	prefer C.DNSPrefer
@@ -77,6 +79,11 @@ func (b *Base) SupportUDP() bool {
 	return b.udp
 }
 
+// SupportTFO implements C.ProxyAdapter
+func (b *Base) SupportTFO() bool {
+	return b.tfo
+}
+
 // MarshalJSON implements C.ProxyAdapter
 func (b *Base) MarshalJSON() ([]byte, error) {
 	return json.Marshal(map[string]string{
@@ -131,6 +138,7 @@ 	Name        string
 	Addr        string
 	Type        C.AdapterType
 	UDP         bool
+	TFO         bool
 	Interface   string
 	RoutingMark int
 	Prefer      C.DNSPrefer
@@ -142,6 +150,7 @@ 		name:   opt.Name,
 		addr:   opt.Addr,
 		tp:     opt.Type,
 		udp:    opt.UDP,
+		tfo:    opt.TFO,
 		iface:  opt.Interface,
 		rmark:  opt.RoutingMark,
 		prefer: opt.Prefer,




diff --git a/adapter/outbound/hysteria.go b/adapter/outbound/hysteria.go
index 932e8feb28475c9bdc70c97b89e0aa78e34a67d4..56462399c44562877473e6f7584f36e86d147fab 100644
--- a/adapter/outbound/hysteria.go
+++ b/adapter/outbound/hysteria.go
@@ -30,12 +30,11 @@ 	"github.com/Dreamacro/clash/transport/hysteria/transport"
 )
 
 const (
-	mbpsToBps   = 125000
+
 	minSpeedBPS = 16384
 
 	DefaultStreamReceiveWindow     = 15728640 // 15 MB/s
 	DefaultConnectionReceiveWindow = 67108864 // 64 MB/s
-	DefaultMaxIncomingStreams      = 1024
 
 	DefaultALPN        = "hysteria"
 	DefaultProtocol    = "udp"
@@ -258,6 +257,7 @@ 			name:   option.Name,
 			addr:   addr,
 			tp:     C.Hysteria,
 			udp:    true,
+			tfo:    option.FastOpen,
 			iface:  option.Interface,
 			rmark:  option.RoutingMark,
 			prefer: C.NewDNSPrefer(option.IPVersion),




diff --git a/adapter/outbound/tuic.go b/adapter/outbound/tuic.go
index 264c991be42ac37222a38a8935aa8429281f53cd..38c220de566d8f3b3caf785ee9b6e448d7d621c1 100644
--- a/adapter/outbound/tuic.go
+++ b/adapter/outbound/tuic.go
@@ -194,6 +194,8 @@ 			addr:   addr,
 			tp:     C.Tuic,
 			udp:    true,
 package outbound
+		return nil, nil, err
+package outbound
 	FastOpen            bool   `proxy:"fast-open,omitempty"`
 			prefer: C.NewDNSPrefer(option.IPVersion),
 		},




diff --git a/constant/adapters.go b/constant/adapters.go
index 53d03fb021ab4cacbdff93efbc9894e85a9cd520..d25023e24564f6799f975be26f78bd0cdcf5ab89 100644
--- a/constant/adapters.go
+++ b/constant/adapters.go
@@ -86,6 +86,7 @@ 	Name() string
 	Type() AdapterType
 	Addr() string
 	SupportUDP() bool
+	SupportTFO() bool
 	MarshalJSON() ([]byte, error)
 
 	// StreamConn wraps a protocol around net.Conn with Metadata.