fix(custom): settings parsing for custom VPNSP

This commit is contained in:
Quentin McGaw
2022-01-07 09:23:29 +00:00
parent ae074dfb2b
commit c40c8413b5
2 changed files with 18 additions and 11 deletions

View File

@@ -68,6 +68,7 @@ func (ss *ServerSelection) validate(vpnServiceProvider string,
var countryChoices, regionChoices, cityChoices,
ispChoices, nameChoices, hostnameChoices []string
switch vpnServiceProvider {
case constants.Custom:
case constants.Cyberghost:
servers := allServers.GetCyberghost()
countryChoices = constants.CyberghostCountryChoices(servers)
@@ -177,7 +178,7 @@ func (ss *ServerSelection) validate(vpnServiceProvider string,
cityChoices = constants.WindscribeCityChoices(servers)
hostnameChoices = constants.WindscribeHostnameChoices(servers)
default:
return fmt.Errorf("%w: %s", ErrVPNProviderNameNotValid, ss.VPN)
return fmt.Errorf("%w: %s", ErrVPNProviderNameNotValid, vpnServiceProvider)
}
err = validateServerFilters(*ss, countryChoices, regionChoices, cityChoices,
@@ -186,15 +187,17 @@ func (ss *ServerSelection) validate(vpnServiceProvider string,
return err // already wrapped error
}
if ss.VPN == constants.OpenVPN {
err = ss.OpenVPN.validate(vpnServiceProvider)
if err != nil {
return fmt.Errorf("OpenVPN server selection settings validation failed: %w", err)
}
} else {
err = ss.Wireguard.validate(vpnServiceProvider)
if err != nil {
return fmt.Errorf("Wireguard server selection settings validation failed: %w", err)
}
}
return nil
}

View File

@@ -11,8 +11,12 @@ import (
func (r *Reader) readProvider(vpnType string) (provider settings.Provider, err error) {
provider.Name = readVPNServiceProvider(vpnType)
var providerName string
if provider.Name != nil {
providerName = *provider.Name
}
provider.ServerSelection, err = r.readServerSelection(*provider.Name, vpnType)
provider.ServerSelection, err = r.readServerSelection(providerName, vpnType)
if err != nil {
return provider, fmt.Errorf("cannot read server selection settings: %w", err)
}
@@ -28,7 +32,7 @@ func (r *Reader) readProvider(vpnType string) (provider settings.Provider, err e
func readVPNServiceProvider(vpnType string) (vpnProviderPtr *string) {
s := strings.ToLower(os.Getenv("VPNSP"))
switch {
case vpnType == constants.OpenVPN &&
case vpnType != constants.Wireguard &&
os.Getenv("OPENVPN_CUSTOM_CONFIG") != "": // retro compatibility
return stringPtr(constants.Custom)
case s == "":