fix bug for reality dest

This commit is contained in:
yuzuki999 2023-05-22 11:20:09 +08:00
parent ebe176b7b3
commit 62d2805906
4 changed files with 21 additions and 12 deletions

View File

@ -1 +1,8 @@
package conf package conf
import "testing"
func TestConf_LoadFromPath(t *testing.T) {
c := New()
t.Log(c.LoadFromPath("../example/config.yml.example"))
}

View File

@ -1,7 +1,5 @@
package conf package conf
import "github.com/goccy/go-json"
type NodeConfig struct { type NodeConfig struct {
ApiConfig *ApiConfig `yaml:"ApiConfig"` ApiConfig *ApiConfig `yaml:"ApiConfig"`
ControllerConfig *ControllerConfig `yaml:"ControllerConfig"` ControllerConfig *ControllerConfig `yaml:"ControllerConfig"`
@ -95,7 +93,7 @@ type CertConfig struct {
} }
type RealityConfig struct { type RealityConfig struct {
Dest json.RawMessage `yaml:"Dest"` Dest interface{} `yaml:"Dest"`
Xver uint64 `yaml:"Xver"` Xver uint64 `yaml:"Xver"`
ServerNames []string `yaml:"ServerNames"` ServerNames []string `yaml:"ServerNames"`
PrivateKey string `yaml:"PrivateKey"` PrivateKey string `yaml:"PrivateKey"`

View File

@ -31,7 +31,7 @@ Nodes:
EnableReality: false # Enable reality EnableReality: false # Enable reality
RealityConfig: # This config like RealityObject for xray-core, please check https://xtls.github.io/config/transport.html#realityobject RealityConfig: # This config like RealityObject for xray-core, please check https://xtls.github.io/config/transport.html#realityobject
Dest: 80 # Same fallback dest Dest: 80 # Same fallback dest
Xver: "example.com:443" # Same fallback xver Xver: 0 # Same fallback xver
ServerNames: ServerNames:
- "example.com" - "example.com"
- "www.example.com" - "www.example.com"

View File

@ -86,8 +86,12 @@ func BuildInbound(config *conf.ControllerConfig, nodeInfo *panel.NodeInfo, tag s
} else if config.EnableReality { } else if config.EnableReality {
// Reality // Reality
inbound.StreamSetting.Security = "reality" inbound.StreamSetting.Security = "reality"
d, err := json.Marshal(config.RealityConfig.Dest)
if err != nil {
return nil, fmt.Errorf("marshal reality dest error: %s", err)
}
inbound.StreamSetting.REALITYSettings = &coreConf.REALITYConfig{ inbound.StreamSetting.REALITYSettings = &coreConf.REALITYConfig{
Dest: config.RealityConfig.Dest, Dest: d,
Xver: config.RealityConfig.Xver, Xver: config.RealityConfig.Xver,
ServerNames: config.RealityConfig.ServerNames, ServerNames: config.RealityConfig.ServerNames,
PrivateKey: config.RealityConfig.PrivateKey, PrivateKey: config.RealityConfig.PrivateKey,