Move provider settings in openvpn settings
This commit is contained in:
@@ -135,7 +135,7 @@ func _main(background context.Context, args []string) int {
|
|||||||
|
|
||||||
waiter := command.NewWaiter()
|
waiter := command.NewWaiter()
|
||||||
|
|
||||||
connections, err := providerConf.GetOpenVPNConnections(allSettings.Provider.ServerSelection)
|
connections, err := providerConf.GetOpenVPNConnections(allSettings.OpenVPN.Provider.ServerSelection)
|
||||||
fatalOnError(err)
|
fatalOnError(err)
|
||||||
err = providerConf.BuildConf(
|
err = providerConf.BuildConf(
|
||||||
connections,
|
connections,
|
||||||
@@ -145,7 +145,7 @@ func _main(background context.Context, args []string) int {
|
|||||||
allSettings.OpenVPN.Root,
|
allSettings.OpenVPN.Root,
|
||||||
allSettings.OpenVPN.Cipher,
|
allSettings.OpenVPN.Cipher,
|
||||||
allSettings.OpenVPN.Auth,
|
allSettings.OpenVPN.Auth,
|
||||||
allSettings.Provider.ExtraConfigOptions,
|
allSettings.OpenVPN.Provider.ExtraConfigOptions,
|
||||||
)
|
)
|
||||||
fatalOnError(err)
|
fatalOnError(err)
|
||||||
|
|
||||||
@@ -265,9 +265,9 @@ func _main(background context.Context, args []string) int {
|
|||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
exitStatus = 1
|
exitStatus = 1
|
||||||
}
|
}
|
||||||
if allSettings.Provider.PortForwarding.Enabled {
|
if allSettings.OpenVPN.Provider.PortForwarding.Enabled {
|
||||||
logger.Info("Clearing forwarded port status file %s", allSettings.Provider.PortForwarding.Filepath)
|
logger.Info("Clearing forwarded port status file %s", allSettings.OpenVPN.Provider.PortForwarding.Filepath)
|
||||||
if err := fileManager.Remove(string(allSettings.Provider.PortForwarding.Filepath)); err != nil {
|
if err := fileManager.Remove(string(allSettings.OpenVPN.Provider.PortForwarding.Filepath)); err != nil {
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
exitStatus = 1
|
exitStatus = 1
|
||||||
}
|
}
|
||||||
@@ -381,9 +381,9 @@ func onConnected(allSettings settings.Settings,
|
|||||||
routingConf routing.Routing, defaultInterface string,
|
routingConf routing.Routing, defaultInterface string,
|
||||||
providerConf provider.Provider,
|
providerConf provider.Provider,
|
||||||
) {
|
) {
|
||||||
if allSettings.Provider.PortForwarding.Enabled {
|
if allSettings.OpenVPN.Provider.PortForwarding.Enabled {
|
||||||
time.AfterFunc(5*time.Second, func() {
|
time.AfterFunc(5*time.Second, func() {
|
||||||
setupPortForwarding(logger, providerConf, allSettings.Provider.PortForwarding.Filepath, allSettings.System.UID, allSettings.System.GID)
|
setupPortForwarding(logger, providerConf, allSettings.OpenVPN.Provider.PortForwarding.Filepath, allSettings.System.UID, allSettings.System.GID)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"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"
|
"github.com/qdm12/private-internet-access-docker/internal/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -15,19 +17,23 @@ type OpenVPN struct {
|
|||||||
Root bool
|
Root bool
|
||||||
Cipher string
|
Cipher string
|
||||||
Auth string
|
Auth string
|
||||||
|
Provider models.ProviderSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOpenVPNSettings obtains the OpenVPN settings using the params functions
|
// 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()
|
settings.User, err = paramsReader.GetUser()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
return settings, err
|
||||||
}
|
}
|
||||||
// Remove spaces in user ID to simplify user's life, thanks @JeordyR
|
// Remove spaces in user ID to simplify user's life, thanks @JeordyR
|
||||||
settings.User = strings.ReplaceAll(settings.User, " ", "")
|
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 {
|
if err != nil {
|
||||||
return settings, err
|
return settings, err
|
||||||
|
} else if isMullvad {
|
||||||
|
settings.Password = "m"
|
||||||
}
|
}
|
||||||
settings.Verbosity, err = paramsReader.GetOpenVPNVerbosity()
|
settings.Verbosity, err = paramsReader.GetOpenVPNVerbosity()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -45,7 +51,21 @@ func GetOpenVPNSettings(paramsReader params.Reader, passwordRequired bool) (sett
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
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 {
|
func (o *OpenVPN) String() string {
|
||||||
@@ -59,6 +79,7 @@ func (o *OpenVPN) String() string {
|
|||||||
"Password: [redacted]",
|
"Password: [redacted]",
|
||||||
"Verbosity level: " + fmt.Sprintf("%d", o.Verbosity),
|
"Verbosity level: " + fmt.Sprintf("%d", o.Verbosity),
|
||||||
"Run as root: " + runAsRoot,
|
"Run as root: " + runAsRoot,
|
||||||
|
o.Provider.String(),
|
||||||
}
|
}
|
||||||
if len(o.Cipher) > 0 {
|
if len(o.Cipher) > 0 {
|
||||||
settingsList = append(settingsList, "Custom cipher: "+o.Cipher)
|
settingsList = append(settingsList, "Custom cipher: "+o.Cipher)
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
package settings
|
package settings
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"strings"
|
"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/models"
|
||||||
"github.com/qdm12/private-internet-access-docker/internal/params"
|
"github.com/qdm12/private-internet-access-docker/internal/params"
|
||||||
)
|
)
|
||||||
@@ -13,7 +11,6 @@ import (
|
|||||||
type Settings struct {
|
type Settings struct {
|
||||||
VPNSP models.VPNProvider
|
VPNSP models.VPNProvider
|
||||||
OpenVPN OpenVPN
|
OpenVPN OpenVPN
|
||||||
Provider models.ProviderSettings
|
|
||||||
System System
|
System System
|
||||||
DNS DNS
|
DNS DNS
|
||||||
Firewall Firewall
|
Firewall Firewall
|
||||||
@@ -25,7 +22,6 @@ func (s *Settings) String() string {
|
|||||||
return strings.Join([]string{
|
return strings.Join([]string{
|
||||||
"Settings summary below:",
|
"Settings summary below:",
|
||||||
s.OpenVPN.String(),
|
s.OpenVPN.String(),
|
||||||
s.Provider.String(),
|
|
||||||
s.System.String(),
|
s.System.String(),
|
||||||
s.DNS.String(),
|
s.DNS.String(),
|
||||||
s.Firewall.String(),
|
s.Firewall.String(),
|
||||||
@@ -42,31 +38,10 @@ func GetAllSettings(paramsReader params.Reader) (settings Settings, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
return settings, err
|
||||||
}
|
}
|
||||||
switch settings.VPNSP {
|
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader, 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)
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
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)
|
settings.DNS, err = GetDNSSettings(paramsReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
return settings, err
|
||||||
|
|||||||
Reference in New Issue
Block a user