From 330a712be67c66479d95a8b9d8157ba1550ed21a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 5 Dec 2023 19:09:13 +0800 Subject: [PATCH] Make type check strict --- option/inbound.go | 2 ++ option/outbound.go | 2 ++ option/tls_acme.go | 2 ++ option/v2ray_transport.go | 6 +++--- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/option/inbound.go b/option/inbound.go index 76815b5f..1e1cfa32 100644 --- a/option/inbound.go +++ b/option/inbound.go @@ -109,6 +109,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) } diff --git a/option/outbound.go b/option/outbound.go index e01ffed6..29c636dc 100644 --- a/option/outbound.go +++ b/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) } diff --git a/option/tls_acme.go b/option/tls_acme.go index 5febd09e..8bff9e92 100644 --- a/option/tls_acme.go +++ b/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) } diff --git a/option/v2ray_transport.go b/option/v2ray_transport.go index ba033211..aa004023 100644 --- a/option/v2ray_transport.go +++ b/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) }