feat(config): allow invalid server filters (#2419)

- Disallow setting a server filter when there is no choice available
- Allow setting an invalid server filter when there is at least one choice available
- Log at warn level when an invalid server filter is set
- Fix #2337
This commit is contained in:
Quentin McGaw
2024-08-17 12:01:26 +02:00
committed by GitHub
parent 4a128677dd
commit 897a9d7f57
8 changed files with 68 additions and 26 deletions

View File

@@ -21,14 +21,14 @@ type VPN struct {
}
// TODO v4 remove pointer for receiver (because of Surfshark).
func (v *VPN) Validate(storage Storage, ipv6Supported bool) (err error) {
func (v *VPN) Validate(storage Storage, ipv6Supported bool, warner Warner) (err error) {
// Validate Type
validVPNTypes := []string{vpn.OpenVPN, vpn.Wireguard}
if err = validate.IsOneOf(v.Type, validVPNTypes...); err != nil {
return fmt.Errorf("%w: %w", ErrVPNTypeNotValid, err)
}
err = v.Provider.validate(v.Type, storage)
err = v.Provider.validate(v.Type, storage, warner)
if err != nil {
return fmt.Errorf("provider settings: %w", err)
}