diff --git a/unix/vncserver b/unix/vncserver index 6e1baa8..750db57 100755 --- a/unix/vncserver +++ b/unix/vncserver @@ -1110,7 +1110,7 @@ sub DefineFilePathsAndStuff { } sub ParseAndProcessCliOptions { - my @supportedOptions = ("-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,"-select-de",OPTIONAL_ARG_VALUE, "-interface", REQUIRED_ARG_VALUE, '-debug', NO_ARG_VALUE); + my @supportedOptions = ("-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,"-select-de",OPTIONAL_ARG_VALUE, "-interface", REQUIRED_ARG_VALUE, '-debug', NO_ARG_VALUE, '-websocketPort', REQUIRED_ARG_VALUE); ParseOptionsAndRemoveMatchesFromARGV(@supportedOptions); ProcessCliOptions(); CheckGeometryAndDepthAreSensible(); @@ -1133,7 +1133,8 @@ sub PrepareDefaultsForPassingToXvnc { %default_opts; %config; - $websocketPort = $defaultWebsocketPort + $displayNumber; + $websocketPort = $opt{"-websocketPort"} || \ + GenerateWebsocketPortFromDisplayNumber(); $desktopName = $opt{'-name'} || "$host:$displayNumber ($ENV{USER})"; SetReasonabeDefaults(); @@ -1141,6 +1142,10 @@ sub PrepareDefaultsForPassingToXvnc { CheckBrowserHostDefined(); } +sub GenerateWebsocketPortFromDisplayNumber { + $defaultWebsocketPort + $displayNumber; +} + sub EnsureAtLeastOneKasmUserExists { @kasmPasswdUsers = LoadKasmPasswdUsers(); if (!AtLeastOneUserConfigured()) {