Re: [Quickfix-developers] empty sequence number on sequence reset message
Brought to you by:
orenmnero
From: Oren M. <or...@qu...> - 2004-11-04 15:57:53
|
Actually, on second thought there is no need to change the signature of=20= Session::verify, rewriting it like this is probably better: bool Session::verify( const Message& msg, bool checkTooHigh, bool checkTooLow ) { QF_STACK_PUSH(Session::verify) SenderCompID senderCompID; TargetCompID targetCompID; SendingTime sendingTime; MsgType msgType; MsgSeqNum msgSeqNum; try { const Header& header =3D msg.getHeader(); header.getField( senderCompID ); header.getField( targetCompID ); header.getField( sendingTime ); header.getField( msgType ); if( checkTooHigh || checkTooLow ) header.getField( msgSeqNum ); if ( !validLogonState( msgType ) ) throw std::logic_error( "Logon state is not valid for message" ); if ( !isGoodTime( sendingTime ) ) { doBadTime( msg ); return false; } if ( !isCorrectCompID( senderCompID, targetCompID ) ) { doBadCompID( msg ); return false; } if ( checkTooHigh && isTargetTooHigh( msgSeqNum ) ) { doTargetTooHigh( msg ); return false; } else if ( checkTooLow && isTargetTooLow( msgSeqNum ) ) { doTargetTooLow( msg ); return false; } UtcTimeStamp now; m_state.lastReceivedTime( now ); m_state.testRequest( 0 ); } catch ( std::exception& e ) { m_state.onEvent( e.what() ); disconnect(); return false; } fromCallback( msgType, msg, m_sessionID ); return true; QF_STACK_POP } On Nov 4, 2004, at 8:33 AM, Michael Raykh wrote: > In our test of quickFix against Appia fix engine the following = happens: > > - Appia sends sequence reset request msg > - for some reason sequence number field is not populated on this reset=20= > request > - quickFix decides to reject this > - crashes in generateReject in > =A0=A0=A0=A0=A0=A0=A0 =A0 message.getHeader().getField( msgSeqNum ); > =A0=A0 'cause message seq number is not set... > > > > Is this proper behaviour? Any suggestions how to handle this? > This email and any files transmitted with it are confidential and=20 > intended solely for the use of the individual or entity to whom they=20= > are addressed. If you have received this email in error please notify=20= > the system manager. This message contains confidential information and=20= > is intended only for the individual named. If you are not the named=20 > addressee you should not disseminate, distribute or copy this e-mail.=20= |