From 07b2942945414de2f153773e6eb43925a28100ab Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Mon, 29 Oct 2012 15:35:56 -0400 Subject: [PATCH] Friendlier error message when server does not support UDP port range. --- scripts/mosh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/mosh b/scripts/mosh index 5e91417..737500d 100755 --- a/scripts/mosh +++ b/scripts/mosh @@ -137,7 +137,7 @@ if ( defined $port_request ) { } } } else { - die "$0: Server-side port ($port_request) not valid.\n"; + die "$0: Server-side port or range ($port_request) is not valid.\n"; } } @@ -245,8 +245,9 @@ if ( $pid == 0 ) { # child my $quoted_self = shell_quote( $0 ); exec "$ssh " . shell_quote( '-S', 'none', '-o', "ProxyCommand=$quoted_self --fake-proxy -- %h %p", '-t', $userhost, '--', "$server " . shell_quote( @server ) ); die "Cannot exec ssh: $!\n"; -} else { # server +} else { # parent my ( $ip, $port, $key ); + my $bad_udp_port_warning = 0; close $pty; LINE: while ( <$pty_slave> ) { chomp; @@ -262,6 +263,9 @@ if ( $pid == 0 ) { # child die "Bad MOSH CONNECT string: $_\n"; } } else { + if ( $port_request =~ m{:} and m{Bad UDP port} ) { + $bad_udp_port_warning = 1; + } print "$_\n"; } } @@ -272,6 +276,9 @@ if ( $pid == 0 ) { # child } if ( not defined $key or not defined $port ) { + if ( $bad_udp_port_warning ) { + die "$0: Server does not support UDP port range option.\n"; + } die "$0: Did not find mosh server startup message.\n"; }