Skip to content

Commit

Permalink
Merge pull request #30 from KorenKrita/dev_new
Browse files Browse the repository at this point in the history
add sing mux config support
  • Loading branch information
wyx2685 authored Oct 31, 2024
2 parents ab1ca83 + 29928a1 commit a0de94e
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
14 changes: 14 additions & 0 deletions conf/sing.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ type SingOptions struct {
DomainStrategy option.DomainStrategy `json:"DomainStrategy"`
SniffOverrideDestination bool `json:"SniffOverrideDestination"`
FallBackConfigs *FallBackConfigForSing `json:"FallBackConfigs"`
Multiplex *MultiplexConfig `json:"MultiplexConfig"`
}

type SingNtpConfig struct {
Expand All @@ -59,6 +60,18 @@ type FallBack struct {
ServerPort string `json:"ServerPort"`
}

type MultiplexConfig struct {
Enabled bool `json:"Enable"`
Padding bool `json:"Padding"`
Brutal BrutalOptions `json:"Brutal"`
}

type BrutalOptions struct {
Enabled bool `json:"Enable"`
UpMbps int `json:"UpMbps"`
DownMbps int `json:"DownMbps"`
}

func NewSingOptions() *SingOptions {
return &SingOptions{
EnableDNS: false,
Expand All @@ -67,5 +80,6 @@ func NewSingOptions() *SingOptions {
SniffEnabled: true,
SniffOverrideDestination: true,
FallBackConfigs: &FallBackConfigForSing{},
Multiplex: &MultiplexConfig{},
}
}
17 changes: 17 additions & 0 deletions core/sing/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,19 @@ func getInboundOptions(tag string, info *panel.NodeInfo, c *conf.Options) (optio
DomainStrategy: domainStrategy,
},
}
var multiplex *option.InboundMultiplexOptions
if c.SingOptions.Multiplex != nil {
multiplexOption := option.InboundMultiplexOptions{
Enabled: c.SingOptions.Multiplex.Enabled,
Padding: c.SingOptions.Multiplex.Padding,
Brutal: &option.BrutalOptions{
Enabled: c.SingOptions.Multiplex.Brutal.Enabled,
UpMbps: c.SingOptions.Multiplex.Brutal.UpMbps,
DownMbps: c.SingOptions.Multiplex.Brutal.DownMbps,
},
}
multiplex = &multiplexOption
}
var tls option.InboundTLSOptions
switch info.Security {
case panel.Tls:
Expand Down Expand Up @@ -210,6 +223,7 @@ func getInboundOptions(tag string, info *panel.NodeInfo, c *conf.Options) (optio
TLS: &tls,
},
Transport: &t,
Multiplex: multiplex,
}
} else {
in.Type = "vmess"
Expand All @@ -219,6 +233,7 @@ func getInboundOptions(tag string, info *panel.NodeInfo, c *conf.Options) (optio
TLS: &tls,
},
Transport: &t,
Multiplex: multiplex,
}
}
case "shadowsocks":
Expand All @@ -236,6 +251,7 @@ func getInboundOptions(tag string, info *panel.NodeInfo, c *conf.Options) (optio
in.ShadowsocksOptions = option.ShadowsocksInboundOptions{
ListenOptions: listen,
Method: n.Cipher,
Multiplex: multiplex,
}
p := make([]byte, keyLength)
_, _ = rand.Read(p)
Expand Down Expand Up @@ -308,6 +324,7 @@ func getInboundOptions(tag string, info *panel.NodeInfo, c *conf.Options) (optio
TLS: &tls,
},
Transport: &t,
Multiplex: multiplex,
}
if c.SingOptions.FallBackConfigs != nil {
// fallback handling
Expand Down

0 comments on commit a0de94e

Please sign in to comment.