xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.

Opened 4 years ago

Closed 4 years ago

Last modified 12 months ago

#1620 closed enhancement (fixed)

rfb server support

Reported by: Antoine Martin Owned by: J. Max Mena
Priority: major Milestone: 2.2
Component: server Version: trunk
Keywords: Cc:


Implementing a bare bones RFB server turned out to be trivial since the protocol is so simple (unlike xpra, no windows or metadata to deal with!): rfc6143.

This may be useful for comparing with VNC clients, debugging the vfb state, etc

TODO before the next release (minimum required for secure usage):

  • bug: screen updates are always one frame behind
  • authentication step (support at least VncAuth)
  • move code to an rfb support module and also support rfb in shadow servers
  • honour server sharing options, fix source missing attributes (uuid, etc)
  • verify control channel commands, etc (anything that might dereference missing source attributes)

Extras (probably for a later milestone):

  • SSL support (should be trivial)
  • refactor rfb protocol code into a common superclass with regular xpra protocol (packet accounting, threads, close, etc)
  • more encodings than just plain RGB (ie: copyrect for scrolling, jpeg)
  • clipboard support
  • support colormap modes? (8 / 16 bit)
  • desktop-size pseudo encoding (randr like)
  • maybe add a default port for bind-rfb (5900 + DISPLAY)
  • support older protocols

To use it:

xpra start-desktop :100 --start=xterm --bind-rfb= -d rfb
vncviewer -Log "*:stderr:100"

Change History (7)

comment:1 Changed 4 years ago by Antoine Martin

Status: newassigned

Code added in r16673, see also #639.

Better links:

Last edited 4 years ago by Antoine Martin (previous) (diff)

comment:2 Changed 4 years ago by Antoine Martin

Updates linked to UDP (#639):

  • r16710 + r16713: authentication modules refactoring - preparation
  • r16712: large rfb update (see commit message)
Last edited 4 years ago by Antoine Martin (previous) (diff)

comment:3 Changed 4 years ago by Antoine Martin

Owner: changed from Antoine Martin to J. Max Mena
Status: assignednew

Should be fully usable as of r16784 (see commit message).
This is useful for testing, but will need work before being able to compete with other RFB servers (#1632).

@maxmylyn: this is just a FYI, feel free to close.

It does support authentication and sharing options, ie:

echo -n 01234567 > password.txt
xpra start-desktop :100 --start=xterm --sharing=yes \
    --bind-tcp= \
    --bind-rfb= --rfb-auth=file,filename=./password.txt --no-daemon 

You can then connect with vncviewer:

echo -n 01234567 | vncpasswd -f > password.vnc
vncviewer -Log "*:stderr:100" -Shared=1 -passwd=./password.vnc

And since sharing is enabled, you can connect an xpra client simultaneously:

xpra attach tcp:localhost

comment:4 Changed 4 years ago by J. Max Mena

Resolution: fixed
Status: newclosed

Noted and closing.

comment:5 Changed 4 years ago by Antoine Martin

As usual, this required a bunch of platform tweaks and fixes:

  • better keycode support: r16785, with macos and win32 servers support: r16789
  • shadow servers needed to be told to start refreshing: r16786
  • handle win32 sockets timeouts: r16787
  • mouse button handler method signature requires position on win32: r16788
  • platform import fixes, macos doesn't have X11: r16790, r16791
  • macos shadow server fixes: r16792, r16794
  • TCP sockets can be "upgraded" to RFB after a timeout: r16836

It would be nice to add support for bandwidth-limit (#417)

Last edited 4 years ago by Antoine Martin (previous) (diff)

comment:6 Changed 19 months ago by Antoine Martin

Regression in v4: #2811.

comment:7 Changed 12 months ago by migration script

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1620

Note: See TracTickets for help on using tickets.