summaryrefslogtreecommitdiff
path: root/state.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-08-22 15:11:13 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-08-22 15:11:13 +0200
commit9c4da0277824c4d27cae4bc3f29d9c9708da3864 (patch)
tree0aeb97b69adcb071562dea4be03707f01b67db41 /state.go
parente477d140363ebf34300894cbb92ed7a676ea0d11 (diff)
State: Initialize FSM in renew and disconnect
Diffstat (limited to 'state.go')
-rw-r--r--state.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/state.go b/state.go
index 139f67a..fdfdd45 100644
--- a/state.go
+++ b/state.go
@@ -405,6 +405,16 @@ func (state *VPNState) SetDisconnected() error {
if currentServerErr != nil {
return &types.WrappedErrorMessage{Message: errorMessage, Err: currentServerErr}
}
+
+ oauthStructure := currentServer.GetOAuth()
+
+ // Make sure the FSM is initialized
+ oauthStructure.FSM = &state.FSM
+ base, baseErr := currentServer.GetBase()
+ if baseErr != nil {
+ return &types.WrappedErrorMessage{Message: errorMessage, Err: baseErr}
+ }
+ base.FSM = &state.FSM
server.Disconnect(currentServer)
state.FSM.GoTransitionWithData(fsm.HAS_CONFIG, state.getServerInfoData(), false)
@@ -418,13 +428,20 @@ func (state *VPNState) RenewSession() error {
currentServer, currentServerErr := state.Servers.GetCurrentServer()
if currentServerErr != nil {
- return &types.WrappedErrorMessage{Message: "failed to renew session", Err: currentServerErr}
+ return &types.WrappedErrorMessage{Message: errorMessage, Err: currentServerErr}
}
oauthStructure := currentServer.GetOAuth()
oauthStructure.Token = oauth.OAuthToken{Access: "", Refresh: "", Type: "", Expires: 0, ExpiredTimestamp: util.GetCurrentTime()}
+
// Make sure the FSM is initialized
oauthStructure.FSM = &state.FSM
+ base, baseErr := currentServer.GetBase()
+ if baseErr != nil {
+ return &types.WrappedErrorMessage{Message: errorMessage, Err: baseErr}
+ }
+ base.FSM = &state.FSM
+
loginErr := server.Login(currentServer)