This commit is contained in:
Quentin McGaw
2020-06-18 18:05:51 +00:00
parent 5a6cf0fe3a
commit cdbb7bf771
4 changed files with 12 additions and 7 deletions

View File

@@ -20,14 +20,18 @@ func (r *reader) GetUser() (s string, err error) {
} }
// GetPassword obtains the password to use to connect to the VPN servers // GetPassword obtains the password to use to connect to the VPN servers
func (r *reader) GetPassword() (s string, err error) { func (r *reader) GetPassword(required bool) (s string, err error) {
defer func() { defer func() {
unsetenvErr := r.unsetEnv("PASSWORD") unsetenvErr := r.unsetEnv("PASSWORD")
if err == nil { if err == nil {
err = unsetenvErr err = unsetenvErr
} }
}() }()
return r.envParams.GetEnv("PASSWORD", libparams.CaseSensitiveValue(), libparams.Compulsory()) options := []libparams.GetEnvSetter{libparams.CaseSensitiveValue()}
if required {
options = append(options, libparams.Compulsory())
}
return r.envParams.GetEnv("PASSWORD", options...)
} }
// GetNetworkProtocol obtains the network protocol to use to connect to the // GetNetworkProtocol obtains the network protocol to use to connect to the

View File

@@ -42,7 +42,7 @@ type Reader interface {
// VPN getters // VPN getters
GetUser() (s string, err error) GetUser() (s string, err error)
GetPassword() (s string, err error) GetPassword(required bool) (s string, err error)
GetNetworkProtocol() (protocol models.NetworkProtocol, err error) GetNetworkProtocol() (protocol models.NetworkProtocol, err error)
GetOpenVPNVerbosity() (verbosity int, err error) GetOpenVPNVerbosity() (verbosity int, err error)
GetOpenVPNRoot() (root bool, err error) GetOpenVPNRoot() (root bool, err error)

View File

@@ -18,14 +18,14 @@ type OpenVPN struct {
} }
// GetOpenVPNSettings obtains the OpenVPN settings using the params functions // GetOpenVPNSettings obtains the OpenVPN settings using the params functions
func GetOpenVPNSettings(paramsReader params.Reader) (settings OpenVPN, err error) { func GetOpenVPNSettings(paramsReader params.Reader, passwordRequired bool) (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() settings.Password, err = paramsReader.GetPassword(passwordRequired)
if err != nil { if err != nil {
return settings, err return settings, err
} }

View File

@@ -59,11 +59,12 @@ func GetAllSettings(paramsReader params.Reader) (settings Settings, err error) {
if err != nil { if err != nil {
return settings, err return settings, err
} }
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader) isMullvad := settings.VPNSP == constants.Mullvad
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader, !isMullvad)
if err != nil { if err != nil {
return settings, err return settings, err
} }
if settings.VPNSP == constants.Mullvad { if isMullvad {
settings.OpenVPN.Password = "m" settings.OpenVPN.Password = "m"
} }
settings.DNS, err = GetDNSSettings(paramsReader) settings.DNS, err = GetDNSSettings(paramsReader)