diff --git a/session.go b/session.go index 6d6c1aa0c71a6f7670a9ab69860017d250719ea0..73d4be4fbe68e62eaad7c47419eec44d0933141e 100644 --- a/session.go +++ b/session.go @@ -702,6 +702,15 @@ func (s *session) onAdmin(msg interface{}) { return } + if !s.IsSessionTime() { + s.handleDisconnectState(s) + if msg.err != nil { + msg.err <- errors.New("Connection outside of session time") + close(msg.err) + } + return + } + if msg.err != nil { close(msg.err) } diff --git a/session_state.go b/session_state.go index c45ec9dda4bd3978a41df993d0923d6489ea096d..c8b1f42a4a237ec85ef501db2cb9d68df7d63da3 100644 --- a/session_state.go +++ b/session_state.go @@ -22,12 +22,6 @@ func (sm *stateMachine) Start(s *session) { } func (sm *stateMachine) Connect(session *session) { - if !sm.IsSessionTime() { - session.log.OnEvent("Connection outside of session time") - sm.handleDisconnectState(session) - return - } - // No special logon logic needed for FIX Acceptors. if !session.InitiateLogon { sm.setState(session, logonState{})