Skip to content

Commit f74c691

Browse files
committed
Allow OrigTimestamp field to be ignored
1 parent 5185ff8 commit f74c691

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

config/configuration.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,4 +1126,17 @@ const (
11261126
// - Y
11271127
// - N
11281128
EnableNextExpectedMsgSeqNum string = "EnableNextExpectedMsgSeqNum"
1129+
1130+
// CheckOriginalTimestamp if set to Y, the FIX engine will check the OrigSendingTime (tag 122) in the header of incoming messages.
1131+
// When enabled, if the OrigSendingTime is not present or the original sending time is later than the SendingTime (tag 52),
1132+
// the message will be rejected.
1133+
//
1134+
// Required: No
1135+
//
1136+
// Default: Y
1137+
//
1138+
// Valid Values:
1139+
// - Y
1140+
// - N
1141+
CheckOriginalTimestamp string = "CheckOriginalTimestamp"
11291142
)

in_session.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,10 @@ func (state inSession) doTargetTooLow(session *session, msg *Message, rej target
353353
return logoutState{}
354354
}
355355

356+
if session.SessionSettings.DisableCheckOriginalTimestamp {
357+
return state
358+
}
359+
356360
if !msg.Header.Has(tagOrigSendingTime) {
357361
if err := session.doReject(msg, RequiredTagMissing(tagOrigSendingTime)); err != nil {
358362
return handleStateError(session, err)

internal/session_settings.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ type SessionSettings struct {
1919
MaxLatency time.Duration
2020
DisableMessagePersist bool
2121

22+
DisableCheckOriginalTimestamp bool
23+
2224
// Required on logon for FIX.T.1 messages.
2325
DefaultApplVerID string
2426

session_factory.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,15 @@ func (f sessionFactory) newSession(
202202
}
203203
}
204204

205+
if settings.HasSetting(config.CheckOriginalTimestamp) {
206+
var checkTimestamp bool
207+
if checkTimestamp, err = settings.BoolSetting(config.CheckOriginalTimestamp); err != nil {
208+
return
209+
}
210+
211+
s.DisableCheckOriginalTimestamp = !checkTimestamp
212+
}
213+
205214
if settings.HasSetting(config.CheckLatency) {
206215
var doCheckLatency bool
207216
if doCheckLatency, err = settings.BoolSetting(config.CheckLatency); err != nil {

0 commit comments

Comments
 (0)