Browse Source

Feat: add JSONC support to v5 configuration

秋のかえで 3 years ago
parent
commit
28d197b6f3
1 changed files with 8 additions and 3 deletions
  1. 8 3
      infra/conf/v5cfg/init.go

+ 8 - 3
infra/conf/v5cfg/init.go

@@ -7,6 +7,7 @@ import (
 	"github.com/v2fly/v2ray-core/v5/common"
 	"github.com/v2fly/v2ray-core/v5/common/buf"
 	"github.com/v2fly/v2ray-core/v5/common/cmdarg"
+	"github.com/v2fly/v2ray-core/v5/infra/conf/json"
 )
 
 const jsonV5 = "jsonv5"
@@ -14,7 +15,7 @@ const jsonV5 = "jsonv5"
 func init() {
 	common.Must(core.RegisterConfigLoader(&core.ConfigFormat{
 		Name:      []string{jsonV5},
-		Extension: []string{".v5.json"},
+		Extension: []string{".v5.json", ".v5.jsonc"},
 		Loader: func(input interface{}) (*core.Config, error) {
 			switch v := input.(type) {
 			case string:
@@ -22,13 +23,17 @@ func init() {
 				if err != nil {
 					return nil, err
 				}
-				data, err := buf.ReadAllToBytes(r)
+				data, err := buf.ReadAllToBytes(&json.Reader{
+					Reader: r,
+				})
 				if err != nil {
 					return nil, err
 				}
 				return loadJSONConfig(data)
 			case io.Reader:
-				data, err := buf.ReadAllToBytes(v)
+				data, err := buf.ReadAllToBytes(&json.Reader{
+					Reader: v,
+				})
 				if err != nil {
 					return nil, err
 				}