diff --git a/internal/os/mock_os/os.go b/internal/os/mock_os/os.go index 1e149bf9..d6f2eaf2 100644 --- a/internal/os/mock_os/os.go +++ b/internal/os/mock_os/os.go @@ -105,17 +105,3 @@ func (mr *MockOSMockRecorder) Stat(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stat", reflect.TypeOf((*MockOS)(nil).Stat), arg0) } - -// Unsetenv mocks base method -func (m *MockOS) Unsetenv(arg0 string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Unsetenv", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// Unsetenv indicates an expected call of Unsetenv -func (mr *MockOSMockRecorder) Unsetenv(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unsetenv", reflect.TypeOf((*MockOS)(nil).Unsetenv), arg0) -} diff --git a/internal/os/os.go b/internal/os/os.go index 8c686704..37e6069e 100644 --- a/internal/os/os.go +++ b/internal/os/os.go @@ -9,7 +9,6 @@ type OS interface { MkdirAll(name string, perm FileMode) error Remove(name string) error Chown(name string, uid int, gid int) error - Unsetenv(key string) error Stat(name string) (nativeos.FileInfo, error) } @@ -31,9 +30,6 @@ func (o *os) Remove(name string) error { func (o *os) Chown(name string, uid, gid int) error { return nativeos.Chown(name, uid, gid) } -func (o *os) Unsetenv(key string) error { - return nativeos.Unsetenv(key) -} func (o *os) Stat(name string) (nativeos.FileInfo, error) { return nativeos.Stat(name) } diff --git a/internal/params/openvpn.go b/internal/params/openvpn.go index caa28c31..5c421437 100644 --- a/internal/params/openvpn.go +++ b/internal/params/openvpn.go @@ -10,24 +10,15 @@ import ( // GetUser obtains the user to use to connect to the VPN servers. func (r *reader) GetUser() (s string, err error) { - defer func() { - unsetenvErr := r.os.Unsetenv("USER") - if err == nil { - err = unsetenvErr - } - }() - return r.envParams.GetEnv("USER", libparams.CaseSensitiveValue(), libparams.Compulsory()) + return r.envParams.GetEnv("USER", + libparams.CaseSensitiveValue(), + libparams.Compulsory(), + libparams.Unset()) } // GetPassword obtains the password to use to connect to the VPN servers. func (r *reader) GetPassword(required bool) (s string, err error) { - defer func() { - unsetenvErr := r.os.Unsetenv("PASSWORD") - if err == nil { - err = unsetenvErr - } - }() - options := []libparams.GetEnvSetter{libparams.CaseSensitiveValue()} + options := []libparams.GetEnvSetter{libparams.CaseSensitiveValue(), libparams.Unset()} if required { options = append(options, libparams.Compulsory()) } diff --git a/internal/params/shadowsocks.go b/internal/params/shadowsocks.go index b2703572..2f97d212 100644 --- a/internal/params/shadowsocks.go +++ b/internal/params/shadowsocks.go @@ -35,13 +35,7 @@ func (r *reader) GetShadowSocksPort() (port uint16, err error) { // GetShadowSocksPassword obtains the ShadowSocks server password from the environment variable // SHADOWSOCKS_PASSWORD. func (r *reader) GetShadowSocksPassword() (password string, err error) { - defer func() { - unsetErr := r.os.Unsetenv("SHADOWSOCKS_PASSWORD") - if err == nil { - err = unsetErr - } - }() - return r.envParams.GetEnv("SHADOWSOCKS_PASSWORD", libparams.CaseSensitiveValue()) + return r.envParams.GetEnv("SHADOWSOCKS_PASSWORD", libparams.CaseSensitiveValue(), libparams.Unset()) } // GetShadowSocksMethod obtains the ShadowSocks method to use from the environment variable