fix(custom): settings parsing for custom VPNSP
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 == "":
|
||||
|
||||
Reference in New Issue
Block a user