xpra icon
Bug tracker and wiki

Opened 2 months ago

Closed 6 weeks ago

Last modified 5 weeks 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:

Description

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=0.0.0.0:5900 -d rfb
vncviewer 127.0.0.1:0 -Log "*:stderr:100"

Change History (5)

comment:1 Changed 2 months ago by Antoine Martin

Status: newassigned

Code added in r16673, see also #639.

Better links:

Last edited 2 months ago by Antoine Martin (previous) (diff)

comment:2 Changed 8 weeks ago by Antoine Martin

Updates linked to UDP (#639):

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

comment:3 Changed 6 weeks 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=0.0.0.0: \
    --bind-rfb=0.0.0.0: --rfb-auth=file,filename=./password.txt --no-daemon 

You can then connect with vncviewer:

echo -n 01234567 | vncpasswd -f > password.vnc
vncviewer 127.0.0.1:0 -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 6 weeks ago by J. Max Mena

Resolution: fixed
Status: newclosed

Noted and closing.

comment:5 Changed 6 weeks 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
Last edited 5 weeks ago by Antoine Martin (previous) (diff)
Note: See TracTickets for help on using tickets.