]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix issues with various VNC clients.
authorPeter Grehan <grehan@FreeBSD.org>
Fri, 18 Dec 2020 00:38:48 +0000 (00:38 +0000)
committerPeter Grehan <grehan@FreeBSD.org>
Fri, 18 Dec 2020 00:38:48 +0000 (00:38 +0000)
commit2bb4be0f86501ec0565dba3d37ce0f7d7fc9c464
treeeb80268f5986c965e625d49a7b2c68d5219180b2
parentad6c99f277d43f4e21cb097555097a2f0b969c37
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
usr.sbin/bhyve/rfb.c