mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-07-10 13:48:47 +00:00
Proxy: Add Hysteria outbound & transport (version 2, udphop) and Salamander udpmask (#5508)
https://github.com/XTLS/Xray-core/issues/3547#issuecomment-3549896520 https://github.com/XTLS/Xray-core/issues/2635#issuecomment-3570871754
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package internet
|
||||
|
||||
import "github.com/xtls/xray-core/common/net"
|
||||
import (
|
||||
"github.com/xtls/xray-core/common/net"
|
||||
"github.com/xtls/xray-core/transport/internet/finalmask"
|
||||
)
|
||||
|
||||
// MemoryStreamConfig is a parsed form of StreamConfig. It is used to reduce the number of Protobuf parses.
|
||||
type MemoryStreamConfig struct {
|
||||
@@ -9,6 +12,8 @@ type MemoryStreamConfig struct {
|
||||
ProtocolSettings interface{}
|
||||
SecurityType string
|
||||
SecuritySettings interface{}
|
||||
TcpmaskManager *finalmask.TcpmaskManager
|
||||
UdpmaskManager *finalmask.UdpmaskManager
|
||||
SocketSettings *SocketConfig
|
||||
DownloadSettings *MemoryStreamConfig
|
||||
}
|
||||
@@ -45,5 +50,29 @@ func ToMemoryStreamConfig(s *StreamConfig) (*MemoryStreamConfig, error) {
|
||||
mss.SecuritySettings = ess
|
||||
}
|
||||
|
||||
if s != nil && len(s.Tcpmasks) > 0 {
|
||||
var masks []finalmask.Tcpmask
|
||||
for _, msg := range s.Tcpmasks {
|
||||
instance, err := msg.GetInstance()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
masks = append(masks, instance.(finalmask.Tcpmask))
|
||||
}
|
||||
mss.TcpmaskManager = finalmask.NewTcpmaskManager(masks)
|
||||
}
|
||||
|
||||
if s != nil && len(s.Udpmasks) > 0 {
|
||||
var masks []finalmask.Udpmask
|
||||
for _, msg := range s.Udpmasks {
|
||||
instance, err := msg.GetInstance()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
masks = append(masks, instance.(finalmask.Udpmask))
|
||||
}
|
||||
mss.UdpmaskManager = finalmask.NewUdpmaskManager(masks)
|
||||
}
|
||||
|
||||
return mss, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user