vncserver: print browser url to connect to

Add 0.0.0.0 as default interface. Xvnc fails if -interface isn't passed.
This commit is contained in:
Dmitry Maksyoma 2021-10-06 23:44:35 +13:00
parent e453c7d73b
commit 02ef620f67

View File

@ -61,6 +61,8 @@ if (! $skipxstartup) {
&RunXstartup();
}
PrintBrowserUrl();
exit;
###############################################################################
@ -817,6 +819,7 @@ sub SetReasonabeDefaults {
$default_opts{websocketPort} = $websocketPort;
$default_opts{fp} = $fontPath if ($fontPath);
$default_opts{pn} = "";
$default_opts{interface} = "0.0.0.0";
}
sub LoadSystemThenUserThenMandatoryConfigs {
@ -1107,6 +1110,11 @@ sub ParseAndProcessCliOptions {
&CheckCliOptionsForBeingValid();
}
sub CheckBrowserHostDefined {
DeduceBrowserHost() || \
die "-interface has no default value and wasn't passed by user";
}
sub PrepareDefaultsForPassingToXvnc {
# We set some reasonable defaults. Config file settings
# override these where present.
@ -1118,6 +1126,7 @@ sub PrepareDefaultsForPassingToXvnc {
&SetReasonabeDefaults();
&LoadSystemThenUserThenMandatoryConfigs();
CheckBrowserHostDefined();
}
sub EnsureAtLeastOneKasmUserExists {
@ -1183,6 +1192,37 @@ sub PrintLogFilenameAndConfiguredUsersAndStuff {
warn "Log file is $desktopLog\n\n";
}
sub PrintBrowserUrl {
my $browserUrl = ConstructBrowserUrl();
warn "\nPaste this url in your browser: $browserUrl\n"
}
sub IsAllInterfaces {
my $interface = shift;
$interface eq "0.0.0.0";
}
sub DeduceBrowserHost {
my $browserHost = $host;
my $interface = $opt{"-interface"} || $default_opts{interface};
if (IsAllInterfaces($interface)) {
$browserHost = $host;
} else {
$browserHost = $interface;
}
$browserHost;
}
sub ConstructBrowserUrl {
my $browserHost = DeduceBrowserHost();
my $browserPort = $websocketPort;
"https://$browserHost:$browserPort";
}
sub IsThisSystemBinary {
$0 =~ m!^/usr!;
}