Allow server to bind an OS-selected UDP port with -p 0.

It looks like Mosh used to be able to do this but the capability was
lost when port ranges were added in 141ec23.
This commit is contained in:
John Hood
2016-05-27 17:43:11 -04:00
parent c599987ff8
commit 8945efeb82
4 changed files with 21 additions and 9 deletions
+5 -2
View File
@@ -187,13 +187,16 @@ if ( defined $port_request ) {
if ( $port_request =~ m{^(\d+)(:(\d+))?$} ) {
my ( $low, $clause, $high ) = ( $1, $2, $3 );
# good port or port-range
if ( $low <= 0 or $low > 65535 ) {
die "$0: Server-side (low) port ($low) must be within valid range [1..65535].\n";
if ( $low < 0 or $low > 65535 ) {
die "$0: Server-side (low) port ($low) must be within valid range [0..65535].\n";
}
if ( defined $high ) {
if ( $high <= 0 or $high > 65535 ) {
die "$0: Server-side high port ($high) must be within valid range [1..65535].\n";
}
if ( $low == 0 ) {
die "$0: Server-side port ranges may not be used with starting port 0 ($port_request).\n";
}
if ( $low > $high ) {
die "$0: Server-side port range ($port_request): low port greater than high port.\n";
}