LibVNC / libvncserver

LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
GNU General Public License v2.0
1.1k stars 482 forks source link

DefaultSupportedMessagesUltraVNC() and DefaultSupportedMessagesTightVNC() are never called #505

Closed badda71 closed 2 years ago

badda71 commented 2 years ago

In file rfbproto.c, function InitialiseRFBConnection() libvncserver checks the RFB version sent by the server and calls DefaultSupportedMessagesUltraVNC() or DefaultSupportedMessagesTightVNC() depending on the received RFB version (3.4, 3.6, 3.14 or 3.16 for UltraVNC, 3.5 for TightVNC). However, the recent versions of the servers all report RFB version 3.8, so the server-specific capabilities are never set. This means, for example, that server-side scaling does not work anymore (because the capability is set in DefaultSupportedMessagesUltraVNC). We need a new way of identifiying the servers - unsing the RFB version does not work anymore ...

badda71 commented 2 years ago

Added pull request https://github.com/LibVNC/libvncserver/pull/506 to fix this issue. With this, UltraVNC and TightVNC servers are not recognized by the RFB version, but by their specific security types (rfbUltra and rfbTight).