Move provider settings in openvpn settings
This commit is contained in:
@@ -4,6 +4,8 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/qdm12/private-internet-access-docker/internal/constants"
|
||||
"github.com/qdm12/private-internet-access-docker/internal/models"
|
||||
"github.com/qdm12/private-internet-access-docker/internal/params"
|
||||
)
|
||||
|
||||
@@ -15,19 +17,23 @@ type OpenVPN struct {
|
||||
Root bool
|
||||
Cipher string
|
||||
Auth string
|
||||
Provider models.ProviderSettings
|
||||
}
|
||||
|
||||
// GetOpenVPNSettings obtains the OpenVPN settings using the params functions
|
||||
func GetOpenVPNSettings(paramsReader params.Reader, passwordRequired bool) (settings OpenVPN, err error) {
|
||||
func GetOpenVPNSettings(paramsReader params.Reader, vpnProvider models.VPNProvider) (settings OpenVPN, err error) {
|
||||
settings.User, err = paramsReader.GetUser()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
// Remove spaces in user ID to simplify user's life, thanks @JeordyR
|
||||
settings.User = strings.ReplaceAll(settings.User, " ", "")
|
||||
settings.Password, err = paramsReader.GetPassword(passwordRequired)
|
||||
isMullvad := vpnProvider == constants.Mullvad
|
||||
settings.Password, err = paramsReader.GetPassword(!isMullvad)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
} else if isMullvad {
|
||||
settings.Password = "m"
|
||||
}
|
||||
settings.Verbosity, err = paramsReader.GetOpenVPNVerbosity()
|
||||
if err != nil {
|
||||
@@ -45,7 +51,21 @@ func GetOpenVPNSettings(paramsReader params.Reader, passwordRequired bool) (sett
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
return settings, nil
|
||||
switch vpnProvider {
|
||||
case constants.PrivateInternetAccess:
|
||||
settings.Provider, err = GetPIASettings(paramsReader)
|
||||
case constants.Mullvad:
|
||||
settings.Provider, err = GetMullvadSettings(paramsReader)
|
||||
case constants.Windscribe:
|
||||
settings.Provider, err = GetWindscribeSettings(paramsReader)
|
||||
case constants.Surfshark:
|
||||
settings.Provider, err = GetSurfsharkSettings(paramsReader)
|
||||
case constants.Cyberghost:
|
||||
settings.Provider, err = GetCyberghostSettings(paramsReader)
|
||||
default:
|
||||
err = fmt.Errorf("VPN service provider %q is not valid", vpnProvider)
|
||||
}
|
||||
return settings, err
|
||||
}
|
||||
|
||||
func (o *OpenVPN) String() string {
|
||||
@@ -59,6 +79,7 @@ func (o *OpenVPN) String() string {
|
||||
"Password: [redacted]",
|
||||
"Verbosity level: " + fmt.Sprintf("%d", o.Verbosity),
|
||||
"Run as root: " + runAsRoot,
|
||||
o.Provider.String(),
|
||||
}
|
||||
if len(o.Cipher) > 0 {
|
||||
settingsList = append(settingsList, "Custom cipher: "+o.Cipher)
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package settings
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/qdm12/private-internet-access-docker/internal/constants"
|
||||
"github.com/qdm12/private-internet-access-docker/internal/models"
|
||||
"github.com/qdm12/private-internet-access-docker/internal/params"
|
||||
)
|
||||
@@ -13,7 +11,6 @@ import (
|
||||
type Settings struct {
|
||||
VPNSP models.VPNProvider
|
||||
OpenVPN OpenVPN
|
||||
Provider models.ProviderSettings
|
||||
System System
|
||||
DNS DNS
|
||||
Firewall Firewall
|
||||
@@ -25,7 +22,6 @@ func (s *Settings) String() string {
|
||||
return strings.Join([]string{
|
||||
"Settings summary below:",
|
||||
s.OpenVPN.String(),
|
||||
s.Provider.String(),
|
||||
s.System.String(),
|
||||
s.DNS.String(),
|
||||
s.Firewall.String(),
|
||||
@@ -42,31 +38,10 @@ func GetAllSettings(paramsReader params.Reader) (settings Settings, err error) {
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
switch settings.VPNSP {
|
||||
case constants.PrivateInternetAccess:
|
||||
settings.Provider, err = GetPIASettings(paramsReader)
|
||||
case constants.Mullvad:
|
||||
settings.Provider, err = GetMullvadSettings(paramsReader)
|
||||
case constants.Windscribe:
|
||||
settings.Provider, err = GetWindscribeSettings(paramsReader)
|
||||
case constants.Surfshark:
|
||||
settings.Provider, err = GetSurfsharkSettings(paramsReader)
|
||||
case constants.Cyberghost:
|
||||
settings.Provider, err = GetCyberghostSettings(paramsReader)
|
||||
default:
|
||||
err = fmt.Errorf("VPN service provider %q is not valid", settings.VPNSP)
|
||||
}
|
||||
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader, settings.VPNSP)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
isMullvad := settings.VPNSP == constants.Mullvad
|
||||
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader, !isMullvad)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
if isMullvad {
|
||||
settings.OpenVPN.Password = "m"
|
||||
}
|
||||
settings.DNS, err = GetDNSSettings(paramsReader)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
|
||||
Reference in New Issue
Block a user