HomeFreeBSD

Fix issues with various VNC clients.

Description

Fix issues with various VNC clients.

  • support VNC version 3.3 (macos "Screen Sharing" builtin client)
  • wait until client has requested an update prior to sending framebuffer data
  • don't send an update if no framebuffer updates detected
  • increase framebuffer poll frequency to 30Hz, and double that when kbd/mouse input detected
  • zero uninitialized array elements in rfb_send_server_init_msg()
  • fix overly large allocation in rfb_init()
  • use atomics for flags shared between input and output threads
  • use #defines for constants

    This work was contributed by Marko Kiiskila, with reuse of some earlier

work by Henrik Gulbrandsen.

Clients tested :
FreeBSD-current

  • tightvnc
  • tigervnc
  • krdc
  • vinagre

Linux (Ubuntu)

  • krdc
  • vinagre
  • tigervnc
  • xtightvncviewer
  • remmina

MacOS

  • VNC Viewer
  • TigerVNC
  • Screen Sharing (builtin client)

Windows 10

  • Tiger VNC
  • VNC Viewer (cursor lag)
  • UltraVNC (cursor lag)

o/s independent

  • noVNC (browser) using websockify relay

PR: 250795
Submitted by: Marko Kiiskila <marko@apache.org>
Reviewed by: jhb (bhyve)
MFC after: 3 weeks
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D27605

Details

Provenance
grehanAuthored on
Reviewer
jhb
Differential Revision
D27605: Fix issues with various VNC clients.
Parents
rS368746: Apply upstream fix 08968baec1122a58bb90d8f97ad948a75f8a5d69:
Branches
Unknown
Tags
Unknown