~/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.