diff --git a/in_session.go b/in_session.go index 20ab6bde7..a2e7f06c6 100644 --- a/in_session.go +++ b/in_session.go @@ -83,6 +83,7 @@ func (state inSession) Timeout(session *session, event event) (nextState session testReq.Header.SetField(tagMsgType, FIXString("1")) testReq.Body.SetField(tagTestReqID, FIXString("TEST")) session.send(testReq) + session.log.OnEvent("Sent test request TEST") session.peerTimer.Reset(time.Duration(int64(1.2 * float64(session.heartBeatTimeout)))) return pendingTimeout{} } @@ -173,7 +174,10 @@ func (state inSession) resendMessages(session *session, beginSeqNo, endSeqNo int if seqNum != sentMessageSeqNum { state.generateSequenceReset(session, seqNum, sentMessageSeqNum) } + session.resend(msg) + session.log.OnEventf("Resending Message: %v", sentMessageSeqNum) + seqNum = sentMessageSeqNum + 1 nextSeqNum = seqNum } @@ -266,4 +270,6 @@ func (state *inSession) generateSequenceReset(session *session, beginSeqNo int, //FIXME error check? msgBytes, _ := sequenceReset.Build() session.sendBytes(msgBytes) + + session.log.OnEventf("Sent SequenceReset TO: %v", endSeqNo) } diff --git a/session.go b/session.go index b72ead038..588458965 100644 --- a/session.go +++ b/session.go @@ -127,6 +127,7 @@ func createSession(sessionID SessionID, storeFactory MessageStoreFactory, settin session.stateTimer = eventTimer{Task: func() { session.sessionEvent <- needHeartbeat }} session.peerTimer = eventTimer{Task: func() { session.sessionEvent <- peerTimeout }} application.OnCreate(session.sessionID) + session.log.OnEvent("Created session") sessions.newSession <- session return nil @@ -232,6 +233,8 @@ func (s *session) sendBytes(msg []byte) { } func (s *session) doTargetTooHigh(reject targetTooHigh) { + s.log.OnEventf("MsgSeqNum too high, expecting %v but received %v", reject.ExpectedTarget, reject.ReceivedTarget) + resend := NewMessage() resend.Header.SetField(tagMsgType, FIXString("2")) resend.Body.SetField(tagBeginSeqNo, FIXInt(reject.ExpectedTarget)) @@ -243,6 +246,8 @@ func (s *session) doTargetTooHigh(reject targetTooHigh) { resend.Body.SetField(tagEndSeqNo, FIXInt(endSeqNum)) s.send(resend) + + s.log.OnEventf("Sent ResendRequest FROM: %v TO: %v", reject.ExpectedTarget, endSeqNum) } func (s *session) verifyLogon(msg Message) MessageRejectError {