From e7649f2dec8e146779b54627f5efb88f97e3392d Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Tue, 12 Jul 2022 15:24:11 +0200 Subject: State + Server: Ensure the current secure location is re-initialized --- internal/server/server.go | 4 ++++ state.go | 14 ++++++++++---- 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 -- cgit v1.2.3