Fix #175
This commit is contained in:
@@ -20,14 +20,18 @@ func (r *reader) GetUser() (s string, err error) {
|
||||
}
|
||||
|
||||
// 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() {
|
||||
unsetenvErr := r.unsetEnv("PASSWORD")
|
||||
if err == nil {
|
||||
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
|
||||
|
||||
@@ -42,7 +42,7 @@ type Reader interface {
|
||||
|
||||
// VPN getters
|
||||
GetUser() (s string, err error)
|
||||
GetPassword() (s string, err error)
|
||||
GetPassword(required bool) (s string, err error)
|
||||
GetNetworkProtocol() (protocol models.NetworkProtocol, err error)
|
||||
GetOpenVPNVerbosity() (verbosity int, err error)
|
||||
GetOpenVPNRoot() (root bool, err error)
|
||||
|
||||
@@ -18,14 +18,14 @@ type OpenVPN struct {
|
||||
}
|
||||
|
||||
// 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()
|
||||
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()
|
||||
settings.Password, err = paramsReader.GetPassword(passwordRequired)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
|
||||
@@ -59,11 +59,12 @@ func GetAllSettings(paramsReader params.Reader) (settings Settings, err error) {
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader)
|
||||
isMullvad := settings.VPNSP == constants.Mullvad
|
||||
settings.OpenVPN, err = GetOpenVPNSettings(paramsReader, !isMullvad)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
if settings.VPNSP == constants.Mullvad {
|
||||
if isMullvad {
|
||||
settings.OpenVPN.Password = "m"
|
||||
}
|
||||
settings.DNS, err = GetDNSSettings(paramsReader)
|
||||
|
||||
Reference in New Issue
Block a user