X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=data%2FPVE%2FTools.pm;h=43b30b14bd7c913145036270210a37298850ced1;hp=f962da50bda194311e68f01779480c14abe96bd4;hb=ec6d95b45d4647a5954ac367257bcec13bbf45c9;hpb=845f01b6c46da03f1a31fd808d4bdcd64c893fb9 diff --git a/data/PVE/Tools.pm b/data/PVE/Tools.pm index f962da5..43b30b1 100644 --- a/data/PVE/Tools.pm +++ b/data/PVE/Tools.pm @@ -580,6 +580,30 @@ sub extract_param { return $res; } +# Note: we use this to wait until vncterm is ready +sub wait_for_vnc_port { + my ($port, $timeout) = @_; + + $timeout = 5 if !$timeout; + + for (my $i = 0; $i < $timeout; $i++) { + if (my $fh = IO::File->new ("/proc/net/tcp", "r")) { + while (defined (my $line = <$fh>)) { + if ($line =~ m/^\s*\d+:\s+([0-9A-Fa-f]{8}):([0-9A-Fa-f]{4})\s/) { + if ($port == hex($2)) { + close($fh); + return 1; + } + } + } + close($fh); + } + sleep(1); + } + + return undef; +} + sub next_vnc_port { for (my $p = 5900; $p < 6000; $p++) {