From 40705474e1998bf4a59b82c96d343e13247a9926 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Mon, 20 Mar 2023 13:48:47 +0100 Subject: Types: Split protocol into its own --- types/protocol/protocol.go | 23 +++++++++++++++++++++++ types/types.go | 17 ++++------------- 2 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 types/protocol/protocol.go (limited to 'types') diff --git a/types/protocol/protocol.go b/types/protocol/protocol.go new file mode 100644 index 0000000..d165105 --- /dev/null +++ b/types/protocol/protocol.go @@ -0,0 +1,23 @@ +package protocol + +type Protocol int8 + +const ( + // Unknown indicates that the protocol is not known + Unknown Protocol = iota + // OpenVPN indicates that the protocol is OpenVPN + OpenVPN + // WireGuard indicates that the protocol is WireGuard + WireGuard +) + +func New(p string) Protocol { + switch(p) { + case "openvpn": + return OpenVPN + case "wireguard": + return WireGuard + default: + return Unknown + } +} diff --git a/types/types.go b/types/types.go index 237668b..99b997e 100644 --- a/types/types.go +++ b/types/types.go @@ -4,6 +4,8 @@ package types import ( "encoding/json" "time" + + "github.com/eduvpn/eduvpn-common/types/protocol" ) // TODO: Discovery here is the same as the upstream discovery format, should we separate this as well? @@ -75,21 +77,10 @@ type Expiry struct { NotificationTimes []int64 `json:"notification_times"` } -type Protocol int8 - -const ( - // PROTOCOL_UNKNOWN indicates that the protocol is not known - PROTOCOL_UNKNOWN Protocol = iota - // PROTOCOL_OPENVPN indicates that the protocol is OpenVPN - PROTOCOL_OPENVPN - // PROTOCOL_WIREGUARD indicates that the protocol is WireGuard - PROTOCOL_WIREGUARD -) - type Profile struct { Identifier string `json:"identifier"` DisplayName map[string]string `json:"display_name,omitempty"` - Protocols []Protocol `json:"supported_protocols"` + Protocols []protocol.Protocol `json:"supported_protocols"` } type Profiles struct { @@ -128,7 +119,7 @@ type ServerList struct { type Configuration struct { VPNConfig string `json:"config"` - Protocol Protocol `json:"protocol"` + Protocol protocol.Protocol `json:"protocol"` DefaultGateway bool `json:"default_gateway"` Tokens Tokens `json:"tokens"` } -- cgit v1.2.3