Protocol changes to support server-side delayed echoing

This commit is contained in:
Keith Winstein
2012-02-03 16:30:33 -05:00
parent da66244eab
commit 5f31fd3f7a
10 changed files with 127 additions and 92 deletions
+6 -1
View File
@@ -15,6 +15,7 @@ Transport<MyState, RemoteState>::Transport( MyState &initial_state, RemoteState
sender( &connection, initial_state ),
received_states( 1, TimestampedState<RemoteState>( timestamp(), 0, initial_remote ) ),
last_receiver_state( initial_remote ),
sent_state_late_acked( 0 ),
fragments(),
verbose( false )
{
@@ -28,6 +29,7 @@ Transport<MyState, RemoteState>::Transport( MyState &initial_state, RemoteState
sender( &connection, initial_state ),
received_states( 1, TimestampedState<RemoteState>( timestamp(), 0, initial_remote ) ),
last_receiver_state( initial_remote ),
sent_state_late_acked( 0 ),
fragments(),
verbose( false )
{
@@ -48,7 +50,10 @@ void Transport<MyState, RemoteState>::recv( void )
}
sender.process_acknowledgment_through( inst.ack_num() );
if ( inst.late_ack_num() > sent_state_late_acked ) {
sent_state_late_acked = inst.late_ack_num();
}
/* first, make sure we don't already have the new state */
for ( typename list< TimestampedState<RemoteState> >::iterator i = received_states.begin();
i != received_states.end();