VPNSP value custom for OpenVPN custom config files (#621)
- Retro-compatibility: `OPENVPN_CUSTOM_CONFIG` set implies `VPNSP=custom` - Change: `up` and `down` options are not filtered out - Change: `OPENVPN_INTERFACE` overrides the network interface defined in the configuration file - Change: `PORT` overrides any port found in the configuration file - Feat: config file is read when building the OpenVPN configuration, so it's effectively reloaded on VPN restarts - Feat: extract values from custom file at start to log out valid settings - Maint: `internal/openvpn/extract` package instead of `internal/openvpn/custom` package - Maint: All providers' `BuildConf` method return an error - Maint: rename `CustomConfig` to `ConfFile` in Settings structures
This commit is contained in:
@@ -49,6 +49,8 @@ func (settings *Provider) read(r reader, vpnType string) error {
|
||||
}
|
||||
|
||||
switch settings.Name {
|
||||
case constants.Custom:
|
||||
err = settings.readCustom(r, vpnType)
|
||||
case constants.Cyberghost:
|
||||
err = settings.readCyberghost(r)
|
||||
case constants.Fastestvpn:
|
||||
@@ -99,6 +101,7 @@ func (settings *Provider) readVPNServiceProvider(r reader, vpnType string) (err
|
||||
switch vpnType {
|
||||
case constants.OpenVPN:
|
||||
allowedVPNServiceProviders = []string{
|
||||
constants.Custom,
|
||||
"cyberghost", "fastestvpn", "hidemyass", "ipvanish", "ivpn", "mullvad", "nordvpn",
|
||||
"privado", "pia", "private internet access", "privatevpn", "protonvpn",
|
||||
"purevpn", "surfshark", "torguard", constants.VPNUnlimited, "vyprvpn", "windscribe"}
|
||||
@@ -115,6 +118,11 @@ func (settings *Provider) readVPNServiceProvider(r reader, vpnType string) (err
|
||||
if vpnsp == "pia" { // retro compatibility
|
||||
vpnsp = "private internet access"
|
||||
}
|
||||
|
||||
if settings.isOpenVPNCustomConfig(r.env) { // retro compatibility
|
||||
vpnsp = constants.Custom
|
||||
}
|
||||
|
||||
settings.Name = vpnsp
|
||||
|
||||
return nil
|
||||
@@ -199,3 +207,12 @@ func portsToString(ports []uint16) string {
|
||||
}
|
||||
return strings.Join(slice, ", ")
|
||||
}
|
||||
|
||||
// isOpenVPNCustomConfig is for retro compatibility to set VPNSP=custom
|
||||
// if OPENVPN_CUSTOM_CONFIG is set.
|
||||
func (settings Provider) isOpenVPNCustomConfig(env params.Interface) (ok bool) {
|
||||
s, _ := env.Get("VPN_TYPE")
|
||||
isOpenVPN := s == constants.OpenVPN
|
||||
s, _ = env.Get("OPENVPN_CUSTOM_CONFIG")
|
||||
return isOpenVPN && s != ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user