Browse Source

Make type check strict

世界 1 year ago
parent
commit
744a5d703b
4 changed files with 9 additions and 3 deletions
  1. 2 0
      option/inbound.go
  2. 2 0
      option/outbound.go
  3. 2 0
      option/tls_acme.go
  4. 3 3
      option/v2ray_transport.go

+ 2 - 0
option/inbound.go

@@ -111,6 +111,8 @@ func (h *Inbound) UnmarshalJSON(bytes []byte) error {
 		v = &h.TUICOptions
 	case C.TypeHysteria2:
 		v = &h.Hysteria2Options
+	case "":
+		return E.New("missing inbound type")
 	default:
 		return E.New("unknown inbound type: ", h.Type)
 	}

+ 2 - 0
option/outbound.go

@@ -119,6 +119,8 @@ func (h *Outbound) UnmarshalJSON(bytes []byte) error {
 		v = &h.SelectorOptions
 	case C.TypeURLTest:
 		v = &h.URLTestOptions
+	case "":
+		return E.New("missing outbound type")
 	default:
 		return E.New("unknown outbound type: ", h.Type)
 	}

+ 2 - 0
option/tls_acme.go

@@ -40,6 +40,8 @@ func (o ACMEDNS01ChallengeOptions) MarshalJSON() ([]byte, error) {
 		v = o.AliDNSOptions
 	case C.DNSProviderCloudflare:
 		v = o.CloudflareOptions
+	case "":
+		return nil, E.New("missing provider type")
 	default:
 		return nil, E.New("unknown provider type: " + o.Provider)
 	}

+ 3 - 3
option/v2ray_transport.go

@@ -7,7 +7,7 @@ import (
 )
 
 type _V2RayTransportOptions struct {
-	Type               string                  `json:"type,omitempty"`
+	Type               string                  `json:"type"`
 	HTTPOptions        V2RayHTTPOptions        `json:"-"`
 	WebsocketOptions   V2RayWebsocketOptions   `json:"-"`
 	QUICOptions        V2RayQUICOptions        `json:"-"`
@@ -20,8 +20,6 @@ type V2RayTransportOptions _V2RayTransportOptions
 func (o V2RayTransportOptions) MarshalJSON() ([]byte, error) {
 	var v any
 	switch o.Type {
-	case "":
-		return nil, nil
 	case C.V2RayTransportTypeHTTP:
 		v = o.HTTPOptions
 	case C.V2RayTransportTypeWebsocket:
@@ -32,6 +30,8 @@ func (o V2RayTransportOptions) MarshalJSON() ([]byte, error) {
 		v = o.GRPCOptions
 	case C.V2RayTransportTypeHTTPUpgrade:
 		v = o.HTTPUpgradeOptions
+	case "":
+		return nil, E.New("missing transport type")
 	default:
 		return nil, E.New("unknown transport type: " + o.Type)
 	}