Project

General

Profile

Actions

Feature #14494

closed

bhyve VNC server could support multiple connections

Added by Andy Fiddaman 6 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
bhyve
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The current bhyve VNC server only accepts one connection at a time. It would be nice if it supported multiple shared connections.

Actions #1

Updated by Electric Monk 6 months ago

  • Gerrit CR set to 2030
Actions #2

Updated by Andy Fiddaman 4 months ago

I tested this part of the VNC server rewrite (see also #14495) by connecting several clients in parallel to the VNC server for a running VM and disconnecting/reconnecting them at various points while testing that multiple clients could simultaneously control the keyboard and mouse at the same time, and that updates were sent to all clients. Most testing was with two clients from two different computers but I also tested connecting 6 clients in parallel from a single computer using a variety of different software. Updates (particularly whole screen refreshes) slowed down in this fairly extreme case but that is to be expected given the fairly crude VNC server implementation that only supports simple rectangle updates.

Part of this work has also added support for clients to request exclusive access to the server, and I tested this in various way by having clients connect with the exclusive flag set, and verifying that other clients were disconnected and could not reconnect while the original client was connected. When that original client closed the connection, others could connect again.

It has been exercised pretty well in OmniOS which has had this change since early February.

Actions #3

Updated by Electric Monk 4 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit 1aa1f41fe10c6220a7fbef328fac1b72a8355a01

commit  1aa1f41fe10c6220a7fbef328fac1b72a8355a01
Author: Andy Fiddaman <omnios@citrus-it.co.uk>
Date:   2022-04-23T11:02:39.000Z

    14495 bhyve VNC server should support alternate pixel formats
    14494 bhyve VNC server could support multiple connections
    14505 libumem's umem_update thread could be named
    14506 libidspace does not expose id_allocff()
    14640 bhyve VNC authentication fails with openssl3
    Reviewed by: Jason King <jason.brian.king+illumos@gmail.com>
    Reviewed by: Michael Zeller <mike@mikezeller.net>
    Approved by: Robert Mustacchi <rm@fingolfin.org>

Actions

Also available in: Atom PDF