From fd0753c5463b4c54d09712336301e174f05e05ab Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Mon, 9 May 2022 14:15:59 +0200 Subject: State: Implement SetDisconnected/SetConnected --- state.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'state.go') diff --git a/state.go b/state.go index 47f23df..14b8eb6 100644 --- a/state.go +++ b/state.go @@ -180,6 +180,24 @@ func (state *VPNState) SetProfileID(profileID string) error { return nil } +func (state *VPNState) SetConnected() error { + if !state.FSM.HasTransition(internal.CONNECTED) { + return &internal.FSMWrongStateTransitionError{Got: state.FSM.Current, Want: internal.CONNECTED} + } + + state.FSM.GoTransition(internal.CONNECTED) + return nil +} + +func (state *VPNState) SetDisconnected() error { + if !state.FSM.HasTransition(internal.HAS_CONFIG) { + return &internal.FSMWrongStateTransitionError{Got: state.FSM.Current, Want: internal.HAS_CONFIG} + } + + state.FSM.GoTransition(internal.HAS_CONFIG) + return nil +} + type StateSetProfileError struct { ProfileID string Err error -- cgit v1.2.3