summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-07-12 15:24:11 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-07-12 15:24:11 +0200
commite7649f2dec8e146779b54627f5efb88f97e3392d (patch)
tree03fc34717721e54da9a51e7628c6295e3040de33
parent49e0042abaf4210b751e592c2a9f366307e81a4f (diff)
State + Server: Ensure the current secure location is re-initialized
-rw-r--r--internal/server/server.go4
-rw-r--r--state.go14
2 files changed, 14 insertions, 4 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index 55add85..f88c521 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -299,6 +299,10 @@ func (servers *Servers) AddInstituteAccess(instituteServer *types.DiscoveryServe
return institute, nil
}
+func (servers *Servers) GetSecureLocation() string {
+ return servers.SecureInternetHomeServer.CurrentLocation
+}
+
func (servers *Servers) SetSecureLocation(chosenLocationServer *types.DiscoveryServer, fsm *fsm.FSM, logger *log.FileLogger) error {
errorMessage := "failed to set secure location"
// Make sure to add the current location
diff --git a/state.go b/state.go
index 9522396..ef3ea65 100644
--- a/state.go
+++ b/state.go
@@ -181,12 +181,18 @@ func (state *VPNState) addSecureInternetHomeServer(orgID string) (server.Server,
return nil, &types.WrappedErrorMessage{Message: errorMessage, Err: serverErr}
}
+ var locationErr error
+
if !state.Servers.HasSecureLocation() {
- locationErr := state.AskSecureLocation()
+ locationErr = state.AskSecureLocation()
- if locationErr != nil {
- return nil, &types.WrappedErrorMessage{Message: errorMessage, Err: locationErr}
- }
+ } else {
+ // reinitialize
+ locationErr = state.SetSecureLocation(state.Servers.GetSecureLocation())
+ }
+
+ if locationErr != nil {
+ return nil, &types.WrappedErrorMessage{Message: errorMessage, Err: locationErr}
}
return server, nil