Skip to content

Commit c187bdb

Browse files
authored
Merge pull request #635 from ackleymi/initiator-logon-reset
Corrects ResetOnLogon for initiators
2 parents c3c49cb + 0256864 commit c187bdb

File tree

4 files changed

+31
-14
lines changed

4 files changed

+31
-14
lines changed

Makefile

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,30 @@ lint: linters-install
2828
# ---------------------------------------------------------------
2929
# Targets related to running acceptance tests -
3030

31+
ifdef STORE_TYPE
32+
STORE := $(STORE_TYPE)
33+
else
34+
STORE := memory
35+
endif
36+
3137
build-test-srv:
32-
cd _test; go build -o echo_server ./test-server/
38+
cd _test; go build -v -o echo_server ./test-server/
3339
fix40:
34-
cd _test; ./runat.sh $@.cfg 5001 $(STORE_TYPE) "definitions/server/$@/*.def"
40+
cd _test; ./runat.sh $@.cfg 5001 $(STORE) "definitions/server/$@/*.def"
3541
fix41:
36-
cd _test; ./runat.sh $@.cfg 5002 $(STORE_TYPE) "definitions/server/$@/*.def"
42+
cd _test; ./runat.sh $@.cfg 5002 $(STORE) "definitions/server/$@/*.def"
3743
fix42:
38-
cd _test; ./runat.sh $@.cfg 5003 $(STORE_TYPE) "definitions/server/$@/*.def"
44+
cd _test; ./runat.sh $@.cfg 5003 $(STORE) "definitions/server/$@/*.def"
3945
fix43:
40-
cd _test; ./runat.sh $@.cfg 5004 $(STORE_TYPE) "definitions/server/$@/*.def"
46+
cd _test; ./runat.sh $@.cfg 5004 $(STORE) "definitions/server/$@/*.def"
4147
fix44:
42-
cd _test; ./runat.sh $@.cfg 5005 $(STORE_TYPE) "definitions/server/$@/*.def"
48+
cd _test; ./runat.sh $@.cfg 5005 $(STORE) "definitions/server/$@/*.def"
4349
fix50:
44-
cd _test; ./runat.sh $@.cfg 5006 $(STORE_TYPE) "definitions/server/$@/*.def"
50+
cd _test; ./runat.sh $@.cfg 5006 $(STORE) "definitions/server/$@/*.def"
4551
fix50sp1:
46-
cd _test; ./runat.sh $@.cfg 5007 $(STORE_TYPE) "definitions/server/$@/*.def"
52+
cd _test; ./runat.sh $@.cfg 5007 $(STORE) "definitions/server/$@/*.def"
4753
fix50sp2:
48-
cd _test; ./runat.sh $@.cfg 5008 $(STORE_TYPE) "definitions/server/$@/*.def"
54+
cd _test; ./runat.sh $@.cfg 5008 $(STORE) "definitions/server/$@/*.def"
4955

5056
ACCEPT_SUITE=fix40 fix41 fix42 fix43 fix44 fix50 fix50sp1 fix50sp2
5157
accept: $(ACCEPT_SUITE)

session.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,6 @@ func (s *session) prepMessageForSend(msg *Message, inReplyTo *Message) (msgBytes
310310
}
311311

312312
if isAdminMessageType(msgType) {
313-
s.application.ToAdmin(msg, s.sessionID)
314-
315313
if bytes.Equal(msgType, msgTypeLogon) {
316314
var resetSeqNumFlag FIXBoolean
317315
if msg.Body.Has(tagResetSeqNumFlag) {
@@ -330,6 +328,7 @@ func (s *session) prepMessageForSend(msg *Message, inReplyTo *Message) (msgBytes
330328
msg.Header.SetField(tagMsgSeqNum, FIXInt(seqNum))
331329
}
332330
}
331+
s.application.ToAdmin(msg, s.sessionID)
333332
} else {
334333
if err = s.application.ToApp(msg, s.sessionID); err != nil {
335334
return

session_state.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ func (sm *stateMachine) Connect(session *session) {
4949
return
5050
}
5151
}
52+
53+
if session.ResetOnLogon {
54+
if err := session.store.Reset(); err != nil {
55+
session.logError(err)
56+
return
57+
}
58+
}
59+
5260
session.log.OnEvent("Sending logon request")
5361
if err := session.sendLogon(); err != nil {
5462
session.logError(err)

session_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -673,14 +673,18 @@ func (s *SessionSuite) TestInitiateLogonResetSeqNumFlag() {
673673
}
674674
s.session.State = latentState{}
675675
s.session.HeartBtInt = time.Duration(45) * time.Second
676+
s.Require().Nil(s.store.Reset())
677+
s.NextSenderMsgSeqNum(1)
678+
s.NextTargetMsgSeqNum(1)
676679
s.IncrNextTargetMsgSeqNum()
677680
s.IncrNextSenderMsgSeqNum()
681+
s.session.ResetOnLogon = true
678682
s.session.InitiateLogon = true
679683

684+
s.NextSenderMsgSeqNum(2)
685+
s.NextTargetMsgSeqNum(2)
686+
680687
s.MockApp.On("ToAdmin")
681-
s.MockApp.decorateToAdmin = func(msg *Message) {
682-
msg.Body.SetField(tagResetSeqNumFlag, FIXBoolean(true))
683-
}
684688
s.session.onAdmin(adminMsg)
685689

686690
s.MockApp.AssertExpectations(s.T())

0 commit comments

Comments
 (0)