From 3efb3d2fe3b9ecaa26dcf5f9ed6a91f6bb19cfe6 Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Sat, 22 Oct 2011 15:46:09 -0400 Subject: [PATCH] Experiment with smaller delay for client --- networktransport.hpp | 2 ++ stmclient.cpp | 2 ++ transportsender.cpp | 3 ++- transportsender.hpp | 7 +++++-- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/networktransport.hpp b/networktransport.hpp index 2581686..a502fea 100644 --- a/networktransport.hpp +++ b/networktransport.hpp @@ -77,6 +77,8 @@ namespace Network { int fd( void ) { return connection.fd(); } void set_verbose( void ) { sender.set_verbose(); verbose = true; } + + void set_send_delay( int new_delay ) { sender.set_send_delay( new_delay ); } }; } diff --git a/stmclient.cpp b/stmclient.cpp index 730e584..12c8bdb 100644 --- a/stmclient.cpp +++ b/stmclient.cpp @@ -114,6 +114,8 @@ void STMClient::main_init( void ) network = new Network::Transport< Network::UserStream, Terminal::Complete >( blank, local_terminal, key.c_str(), ip.c_str(), port ); + network->set_send_delay( 1 ); /* minimal delay on outgoing keystrokes */ + /* tell server the size of the terminal */ network->get_current_state().push_back( Parser::Resize( window_size.ws_col, window_size.ws_row ) ); } diff --git a/transportsender.cpp b/transportsender.cpp index def9a61..6a69d8c 100644 --- a/transportsender.cpp +++ b/transportsender.cpp @@ -19,7 +19,8 @@ TransportSender::TransportSender( Connection *s_connection, MyState &in shutdown_in_progress( false ), shutdown_tries( 0 ), ack_num( 0 ), - pending_data_ack( false ) + pending_data_ack( false ), + SEND_MINDELAY( 15 ) { } diff --git a/transportsender.hpp b/transportsender.hpp index 04fdb28..0f790d1 100644 --- a/transportsender.hpp +++ b/transportsender.hpp @@ -22,8 +22,7 @@ namespace Network { static const int SEND_INTERVAL_MIN = 20; /* ms between frames */ static const int SEND_INTERVAL_MAX = 250; /* ms between frames */ static const int ACK_INTERVAL = 3000; /* ms between empty acks */ - static const int ACK_DELAY = 20; /* ms before delayed ack */ - static const int SEND_MINDELAY = 20; /* ms to collect all input */ + static const int ACK_DELAY = 100; /* ms before delayed ack */ static const int SHUTDOWN_RETRIES = 3; /* number of shutdown packets to send before giving up */ /* helper methods for tick() */ @@ -62,6 +61,8 @@ namespace Network { uint64_t ack_num; bool pending_data_ack; + int SEND_MINDELAY; /* ms to collect all input */ + public: /* constructor */ TransportSender( Connection *s_connection, MyState &initial_state ); @@ -95,6 +96,8 @@ namespace Network { bool get_counterparty_shutdown_acknowledged( void ) { return fragmenter.last_ack_sent() == uint64_t(-1); } bool shutdown_ack_timed_out( void ); + void set_send_delay( int new_delay ) { SEND_MINDELAY = new_delay; } + /* nonexistent methods to satisfy -Weffc++ */ TransportSender( const TransportSender &x ); TransportSender & operator=( const TransportSender &x );