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
|
// 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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user