diff --git a/unix/vncserver b/unix/vncserver index 2ef436a..e032da5 100755 --- a/unix/vncserver +++ b/unix/vncserver @@ -137,7 +137,7 @@ if ($fontPath eq "") { # Check command line options &ParseOptions("-geometry",1,"-depth",1,"-pixelformat",1,"-name",1,"-kill",1, - "-help",0,"-h",0,"--help",0,"-fp",1,"-list",0,"-fg",0,"-autokill",0,"-noxstartup",0,"-xstartup",1); + "-help",0,"-h",0,"--help",0,"-fp",1,"-list",0,"-fg",0,"-autokill",0,"-noxstartup",0,"-xstartup",1,"-fallbacktofreeport",0); &Usage() if ($opt{'-help'} || $opt{'-h'} || $opt{'--help'}); @@ -184,7 +184,13 @@ if ((@ARGV > 0) && ($ARGV[0] =~ /^:(\d+)$/)) { $displayNumber = $1; shift(@ARGV); if (!&CheckDisplayNumber($displayNumber)) { - die "A VNC server is already running as :$displayNumber\n"; + if ($opt{'-fallbacktofreeport'}) { + warn "A VNC server is already running as :$displayNumber\n"; + $displayNumber = &GetDisplayNumber(); + warn "Using port :$displayNumber as fallback\n"; + } else { + die "A VNC server is already running as :$displayNumber\n"; + } } } elsif ((@ARGV > 0) && ($ARGV[0] !~ /^-/) && ($ARGV[0] !~ /^\+/)) { &Usage(); @@ -688,6 +694,7 @@ sub Usage " [-autokill]\n". " [-noxstartup]\n". " [-xstartup ]\n". + " [-fallbacktofreeport]\n". " ...\n\n". " $prog -kill \n\n". " $prog -list\n\n");