mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-06-21 10:19:15 +03:00
Add MTProxy, MASQUE, VPN, Link parser. Update AmneziaWG. Remove Tunneling
This commit is contained in:
55
parser/clash/vmess.go
Normal file
55
parser/clash/vmess.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package clash
|
||||
|
||||
import "github.com/sagernet/sing-box/option"
|
||||
|
||||
type VmessOption struct {
|
||||
DialerOptions `yaml:",inline"`
|
||||
ServerOptions `yaml:",inline"`
|
||||
*TLSOptions `yaml:",inline"`
|
||||
UUID string `yaml:"uuid"`
|
||||
AlterID int `yaml:"alterId"`
|
||||
Cipher string `yaml:"cipher"`
|
||||
UDP bool `yaml:"udp,omitempty"`
|
||||
Network string `yaml:"network,omitempty"`
|
||||
ServerName string `yaml:"servername,omitempty"`
|
||||
HTTPOpts HTTPOptions `yaml:"http-opts,omitempty"`
|
||||
HTTP2Opts HTTP2Options `yaml:"h2-opts,omitempty"`
|
||||
GrpcOpts GrpcOptions `yaml:"grpc-opts,omitempty"`
|
||||
WSOpts WSOptions `yaml:"ws-opts,omitempty"`
|
||||
PacketAddr bool `yaml:"packet-addr,omitempty"`
|
||||
XUDP bool `yaml:"xudp,omitempty"`
|
||||
PacketEncoding string `yaml:"packet-encoding,omitempty"`
|
||||
GlobalPadding bool `yaml:"global-padding,omitempty"`
|
||||
AuthenticatedLength bool `yaml:"authenticated-length,omitempty"`
|
||||
MuxOpts *MuxOptions `yaml:"smux,omitempty"`
|
||||
}
|
||||
|
||||
func (v *VmessOption) Build() any {
|
||||
if v.TLSOptions != nil {
|
||||
v.SNI = v.ServerName
|
||||
}
|
||||
switch v.PacketEncoding {
|
||||
case "":
|
||||
if v.XUDP {
|
||||
v.PacketEncoding = "xudp"
|
||||
} else if v.PacketAddr {
|
||||
v.PacketEncoding = "packetaddr"
|
||||
}
|
||||
case "packet":
|
||||
v.PacketEncoding = "packetaddr"
|
||||
}
|
||||
return &option.VMessOutboundOptions{
|
||||
DialerOptions: v.DialerOptions.Build(),
|
||||
ServerOptions: v.ServerOptions.Build(),
|
||||
UUID: v.UUID,
|
||||
Security: v.Cipher,
|
||||
AlterId: v.AlterID,
|
||||
GlobalPadding: v.GlobalPadding,
|
||||
AuthenticatedLength: v.AuthenticatedLength,
|
||||
Network: clashNetworks(v.UDP),
|
||||
OutboundTLSOptionsContainer: clashTLSOptions(v.Server, v.TLSOptions),
|
||||
PacketEncoding: v.PacketEncoding,
|
||||
Multiplex: v.MuxOpts.Build(),
|
||||
Transport: clashTransport(v.Network, v.HTTPOpts, v.HTTP2Opts, v.GrpcOpts, v.WSOpts),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user