Fix bug causing new state numbers when not necessary

This commit is contained in:
Keith Winstein
2011-08-09 23:41:55 -04:00
parent 27441a4825
commit 63b9bcb200
+2 -3
View File
@@ -131,9 +131,7 @@ void Transport<MyState, RemoteState>::send_to_receiver( void )
/* If this is the final diff in a sequence, make sure it does get the highest
state number (even if we've retread to previously-seen ground ) */
/* This will force the client to update to this state */
typename list< TimestampedState<MyState> >::iterator last = sent_states.end();
last--;
if ( (previously_sent != last)
if ( (previously_sent->num != sent_states.back().num)
&& (new_state == target_receiver_state) ) {
previously_sent = sent_states.end();
}
@@ -153,6 +151,7 @@ void Transport<MyState, RemoteState>::send_to_receiver( void )
string s = inst.tostring();
try {
fprintf( stderr, "Sent instruction from %d => %d (terminal %d)\r\n", int(inst.old_num), int(inst.new_num), int(sent_states.back().num) );
connection.send( s );
} catch ( MTUException m ) {
continue;