Skip to content

Commit e5b870c

Browse files
committed
Fix bug in sequence reset resetting to incorrect sequence number
1 parent b058e88 commit e5b870c

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

crates/hotfix/src/session.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ impl<M: FixMessage, S: MessageStore> Session<M, S> {
255255
self.on_reject(&message).await?;
256256
}
257257
"4" => {
258-
self.on_sequence_reset(&message).await;
258+
self.on_sequence_reset(&message).await?;
259259
}
260260
"5" => {
261261
self.on_logout().await?;
@@ -486,15 +486,15 @@ impl<M: FixMessage, S: MessageStore> Session<M, S> {
486486
Ok(())
487487
}
488488

489-
async fn on_sequence_reset(&mut self, message: &Message) {
489+
async fn on_sequence_reset(&mut self, message: &Message) -> Result<()> {
490490
let gap_fill: bool = message.get(fix44::GAP_FILL_FLAG).unwrap();
491491
if !gap_fill {
492492
// TODO: non gap fill is valid as well of course, but I don't yet know the use-case for it is
493493
panic!("expected sequence reset with gap fill");
494494
}
495495

496496
let end: u64 = message.get(fix44::NEW_SEQ_NO).unwrap();
497-
self.store.set_target_seq_number(end).await.unwrap();
497+
self.store.set_target_seq_number(end - 1).await
498498
}
499499

500500
async fn handle_verification_error(&mut self, error: MessageVerificationError) {

0 commit comments

Comments
 (0)