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,
|
var countryChoices, regionChoices, cityChoices,
|
||||||
ispChoices, nameChoices, hostnameChoices []string
|
ispChoices, nameChoices, hostnameChoices []string
|
||||||
switch vpnServiceProvider {
|
switch vpnServiceProvider {
|
||||||
|
case constants.Custom:
|
||||||
case constants.Cyberghost:
|
case constants.Cyberghost:
|
||||||
servers := allServers.GetCyberghost()
|
servers := allServers.GetCyberghost()
|
||||||
countryChoices = constants.CyberghostCountryChoices(servers)
|
countryChoices = constants.CyberghostCountryChoices(servers)
|
||||||
@@ -177,7 +178,7 @@ func (ss *ServerSelection) validate(vpnServiceProvider string,
|
|||||||
cityChoices = constants.WindscribeCityChoices(servers)
|
cityChoices = constants.WindscribeCityChoices(servers)
|
||||||
hostnameChoices = constants.WindscribeHostnameChoices(servers)
|
hostnameChoices = constants.WindscribeHostnameChoices(servers)
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("%w: %s", ErrVPNProviderNameNotValid, ss.VPN)
|
return fmt.Errorf("%w: %s", ErrVPNProviderNameNotValid, vpnServiceProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = validateServerFilters(*ss, countryChoices, regionChoices, cityChoices,
|
err = validateServerFilters(*ss, countryChoices, regionChoices, cityChoices,
|
||||||
@@ -186,14 +187,16 @@ func (ss *ServerSelection) validate(vpnServiceProvider string,
|
|||||||
return err // already wrapped error
|
return err // already wrapped error
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ss.OpenVPN.validate(vpnServiceProvider)
|
if ss.VPN == constants.OpenVPN {
|
||||||
if err != nil {
|
err = ss.OpenVPN.validate(vpnServiceProvider)
|
||||||
return fmt.Errorf("OpenVPN server selection settings validation failed: %w", err)
|
if err != nil {
|
||||||
}
|
return fmt.Errorf("OpenVPN server selection settings validation failed: %w", err)
|
||||||
|
}
|
||||||
err = ss.Wireguard.validate(vpnServiceProvider)
|
} else {
|
||||||
if err != nil {
|
err = ss.Wireguard.validate(vpnServiceProvider)
|
||||||
return fmt.Errorf("Wireguard server selection settings validation failed: %w", err)
|
if err != nil {
|
||||||
|
return fmt.Errorf("Wireguard server selection settings validation failed: %w", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -11,8 +11,12 @@ import (
|
|||||||
|
|
||||||
func (r *Reader) readProvider(vpnType string) (provider settings.Provider, err error) {
|
func (r *Reader) readProvider(vpnType string) (provider settings.Provider, err error) {
|
||||||
provider.Name = readVPNServiceProvider(vpnType)
|
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 {
|
if err != nil {
|
||||||
return provider, fmt.Errorf("cannot read server selection settings: %w", err)
|
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) {
|
func readVPNServiceProvider(vpnType string) (vpnProviderPtr *string) {
|
||||||
s := strings.ToLower(os.Getenv("VPNSP"))
|
s := strings.ToLower(os.Getenv("VPNSP"))
|
||||||
switch {
|
switch {
|
||||||
case vpnType == constants.OpenVPN &&
|
case vpnType != constants.Wireguard &&
|
||||||
os.Getenv("OPENVPN_CUSTOM_CONFIG") != "": // retro compatibility
|
os.Getenv("OPENVPN_CUSTOM_CONFIG") != "": // retro compatibility
|
||||||
return stringPtr(constants.Custom)
|
return stringPtr(constants.Custom)
|
||||||
case s == "":
|
case s == "":
|
||||||
|
|||||||
Reference in New Issue
Block a user