chore(all): wrap all sentinel errors

- Force to use `errors.Is` instead of `==` to compare errors
This commit is contained in:
Quentin McGaw
2023-04-12 10:18:16 +00:00
parent fa7fd5f076
commit 219d1f371c
14 changed files with 41 additions and 39 deletions

View File

@@ -22,7 +22,7 @@ var (
func AreAllOneOf(values, choices []string) (err error) {
if len(values) > 0 && len(choices) == 0 {
return ErrNoChoice
return fmt.Errorf("%w", ErrNoChoice)
}
set := make(map[string]struct{}, len(choices))

View File

@@ -100,14 +100,14 @@ func (o OpenVPN) validate(vpnProvider string) (err error) {
vpnProvider != providers.VPNSecure
if isUserRequired && *o.User == "" {
return ErrOpenVPNUserIsEmpty
return fmt.Errorf("%w", ErrOpenVPNUserIsEmpty)
}
passwordRequired := isUserRequired &&
(vpnProvider != providers.Ivpn || !ivpnAccountID.MatchString(*o.User))
if passwordRequired && *o.Password == "" {
return ErrOpenVPNPasswordIsEmpty
return fmt.Errorf("%w", ErrOpenVPNPasswordIsEmpty)
}
err = validateOpenVPNConfigFilepath(isCustom, *o.ConfFile)
@@ -160,7 +160,7 @@ func validateOpenVPNConfigFilepath(isCustom bool,
}
if confFile == "" {
return ErrFilepathMissing
return fmt.Errorf("%w", ErrFilepathMissing)
}
err = helpers.FileExists(confFile)
@@ -186,7 +186,7 @@ func validateOpenVPNClientCertificate(vpnProvider,
providers.VPNSecure,
providers.VPNUnlimited:
if clientCert == "" {
return ErrMissingValue
return fmt.Errorf("%w", ErrMissingValue)
}
}
@@ -209,7 +209,7 @@ func validateOpenVPNClientKey(vpnProvider, clientKey string) (err error) {
providers.VPNUnlimited,
providers.Wevpn:
if clientKey == "" {
return ErrMissingValue
return fmt.Errorf("%w", ErrMissingValue)
}
}
@@ -227,7 +227,7 @@ func validateOpenVPNClientKey(vpnProvider, clientKey string) (err error) {
func validateOpenVPNEncryptedKey(vpnProvider,
encryptedPrivateKey string) (err error) {
if vpnProvider == providers.VPNSecure && encryptedPrivateKey == "" {
return ErrMissingValue
return fmt.Errorf("%w", ErrMissingValue)
}
if encryptedPrivateKey == "" {

View File

@@ -118,7 +118,7 @@ func (ss *ServerSelection) validate(vpnServiceProvider string,
}
if *ss.FreeOnly && *ss.PremiumOnly {
return ErrFreePremiumBothSet
return fmt.Errorf("%w", ErrFreePremiumBothSet)
}
if *ss.StreamOnly &&

View File

@@ -52,7 +52,7 @@ func (w Wireguard) validate(vpnProvider string, ipv6Supported bool) (err error)
// Validate PrivateKey
if *w.PrivateKey == "" {
return ErrWireguardPrivateKeyNotSet
return fmt.Errorf("%w", ErrWireguardPrivateKeyNotSet)
}
_, err = wgtypes.ParseKey(*w.PrivateKey)
if err != nil {
@@ -75,7 +75,7 @@ func (w Wireguard) validate(vpnProvider string, ipv6Supported bool) (err error)
// Validate Addresses
if len(w.Addresses) == 0 {
return ErrWireguardInterfaceAddressNotSet
return fmt.Errorf("%w", ErrWireguardInterfaceAddressNotSet)
}
for i, ipNet := range w.Addresses {
if ipNet.IP == nil || ipNet.Mask == nil {

View File

@@ -41,7 +41,7 @@ func (w WireguardSelection) validate(vpnProvider string) (err error) {
// endpoint IP addresses are baked in
case providers.Custom:
if len(w.EndpointIP) == 0 {
return ErrWireguardEndpointIPNotSet
return fmt.Errorf("%w", ErrWireguardEndpointIPNotSet)
}
default: // Providers not supporting Wireguard
}
@@ -51,12 +51,12 @@ func (w WireguardSelection) validate(vpnProvider string) (err error) {
// EndpointPort is required
case providers.Custom:
if *w.EndpointPort == 0 {
return ErrWireguardEndpointPortNotSet
return fmt.Errorf("%w", ErrWireguardEndpointPortNotSet)
}
// EndpointPort cannot be set
case providers.Surfshark:
if *w.EndpointPort != 0 {
return ErrWireguardEndpointPortSet
return fmt.Errorf("%w", ErrWireguardEndpointPortSet)
}
case providers.Airvpn, providers.Ivpn, providers.Mullvad, providers.Windscribe:
// EndpointPort is optional and can be 0
@@ -92,7 +92,7 @@ func (w WireguardSelection) validate(vpnProvider string) (err error) {
// public keys are baked in
case providers.Custom:
if w.PublicKey == "" {
return ErrWireguardPublicKeyNotSet
return fmt.Errorf("%w", ErrWireguardPublicKeyNotSet)
}
default: // Providers not supporting Wireguard
}