User selectable prediction mode (fixes #9 github issue)

This commit is contained in:
Keith Winstein
2012-02-13 03:50:03 -05:00
parent c34986471c
commit 8c7c5340d4
5 changed files with 71 additions and 10 deletions
+18 -3
View File
@@ -26,16 +26,31 @@ $|=1;
my $client = 'mosh-client';
my $server = 'mosh-server';
my $predict = 'adaptive';
my $usage =
qq{Usage: $0 [options] [user@]host
--client=PATH mosh client on local machine (default: "mosh-client")
--server=PATH mosh server on remote machine (default: "mosh-server")\n};
--client=PATH mosh client on local machine (default: "mosh-client")
--server=PATH mosh server on remote machine (default: "mosh-server")
--predict=adaptive local echo for slower links [default]
-a --predict=always use local echo even on fast links
-n --predict=never never use local echo
Please report bugs to mosh-devel\@mit.edu.
Mosh home page: http://mosh.mit.edu\n};
GetOptions( 'client=s' => \$client,
'server=s' => \$server,
'predict=s' => \$predict,
'a' => sub { $predict = 'always' },
'n' => sub { $predict = 'never' },
'fake-proxy!' => \my $fake_proxy ) or die $usage;
if ( not exists { adaptive => 0, always => 0, never => 0 }->{ $predict } ) {
die $usage;
}
if ( defined $fake_proxy ) {
use Errno qw(EINTR);
use IO::Socket::INET;
@@ -122,5 +137,5 @@ if ( $pid == 0 ) { # child
# Now start real mosh client
$ENV{ 'MOSH_KEY' } = $key;
exec {$client} ($client, $ip, $port);
exec {$client} ($client, $ip, $port, $predict);
}