Skip to content

Commit 2121245

Browse files
Brad Haancbusbey
authored andcommitted
check for initialized session validator before validating message (#128)
1 parent 3a9e364 commit 2121245

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

session.go

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -69,38 +69,34 @@ func createSession(sessionID SessionID, storeFactory MessageStoreFactory, settin
6969
//If the transport or app data dictionary setting is set, the other also needs to be set.
7070
hasTransportDataDictionary := settings.HasSetting(config.TransportDataDictionary)
7171
hasAppDataDictionary := settings.HasSetting(config.AppDataDictionary)
72-
if hasTransportDataDictionary != hasAppDataDictionary {
73-
if hasTransportDataDictionary {
74-
return requiredConfigurationMissing(config.AppDataDictionary)
75-
} else {
76-
return requiredConfigurationMissing(config.TransportDataDictionary)
77-
}
78-
}
79-
80-
var transportDataDictionary *datadictionary.DataDictionary
81-
if transportDataDictionaryPath, err := settings.Setting(config.TransportDataDictionary); err == nil {
82-
if transportDataDictionary, err = datadictionary.Parse(transportDataDictionaryPath); err != nil {
72+
if hasTransportDataDictionary && hasAppDataDictionary {
73+
transportDataDictionaryPath, _ := settings.Setting(config.TransportDataDictionary)
74+
transportDataDictionary, err := datadictionary.Parse(transportDataDictionaryPath)
75+
if err != nil {
8376
return err
8477
}
85-
}
8678

87-
var appDataDictionary *datadictionary.DataDictionary
88-
if appDataDictionaryPath, err := settings.Setting(config.AppDataDictionary); err == nil {
89-
if appDataDictionary, err = datadictionary.Parse(appDataDictionaryPath); err != nil {
79+
appDataDictionaryPath, _ := settings.Setting(config.AppDataDictionary)
80+
appDataDictionary, err := datadictionary.Parse(appDataDictionaryPath)
81+
if err != nil {
9082
return err
9183
}
92-
}
9384

94-
session.validator = &fixtValidator{transportDataDictionary, appDataDictionary, validatorSettings}
85+
session.validator = &fixtValidator{transportDataDictionary, appDataDictionary, validatorSettings}
86+
} else if hasTransportDataDictionary {
87+
return requiredConfigurationMissing(config.AppDataDictionary)
88+
} else if hasAppDataDictionary {
89+
return requiredConfigurationMissing(config.TransportDataDictionary)
90+
}
9591
} else {
9692
var dataDictionary *datadictionary.DataDictionary
9793
if dataDictionaryPath, err := settings.Setting(config.DataDictionary); err == nil {
9894
if dataDictionary, err = datadictionary.Parse(dataDictionaryPath); err != nil {
9995
return err
10096
}
101-
}
10297

103-
session.validator = &fixValidator{dataDictionary, validatorSettings}
98+
session.validator = &fixValidator{dataDictionary, validatorSettings}
99+
}
104100
}
105101

106102
if settings.HasSetting(config.ResetOnLogon) {
@@ -362,8 +358,10 @@ func (s *session) verifySelect(msg Message, checkTooHigh bool, checkTooLow bool)
362358
}
363359
}
364360

365-
if reject := s.validator.Validate(msg); reject != nil {
366-
return reject
361+
if s.validator != nil {
362+
if reject := s.validator.Validate(msg); reject != nil {
363+
return reject
364+
}
367365
}
368366

369367
return s.fromCallback(msg)

0 commit comments

Comments
 (0)