diff --git a/config/parser.go b/config/parser.go index 6598c3a..47b2621 100644 --- a/config/parser.go +++ b/config/parser.go @@ -29,7 +29,7 @@ func ParseConfig(path string, debug bool) ([]byte, error) { if err != nil { return nil, err } - return ParseConfigContent(string(content), debug, DefaultConfigOptions(), false) + return ParseConfigContent(string(content), debug, nil, false) } func ParseConfigContent(contentstr string, debug bool, configOpt *ConfigOptions, fullConfig bool) ([]byte, error) { content := []byte(contentstr) @@ -43,7 +43,7 @@ func ParseConfigContent(contentstr string, debug bool, configOpt *ConfigOptions, if tmpJsonObj["outbounds"] == nil { jsonObj["outbounds"] = []interface{}{jsonObj} } else { - if configOpt.EnableFullConfig || fullConfig { + if fullConfig || (configOpt != nil && configOpt.EnableFullConfig) { jsonObj = tmpJsonObj } else { jsonObj["outbounds"] = tmpJsonObj["outbounds"] diff --git a/v2/custom.go b/v2/custom.go index 72ce783..6598717 100644 --- a/v2/custom.go +++ b/v2/custom.go @@ -174,7 +174,7 @@ func Parse(in *pb.ParseRequest) (*pb.ParseResponse, error) { } - config, err := config.ParseConfigContent(content, true, config.DefaultConfigOptions(), false) + config, err := config.ParseConfigContent(content, true, nil, false) if err != nil { return &pb.ParseResponse{ ResponseCode: pb.ResponseCode_FAILED,