[Spice-devel] [PATCH 0/6 v3] Add new libspice-server.so APIs for injecting client sockets

Daniel P. Berrange berrange at redhat.com
Mon Dec 12 08:52:27 PST 2011

An update to:

 v2: http://lists.freedesktop.org/archives/spice-devel/2011-October/005881.html
 v1: http://lists.freedesktop.org/archives/spice-devel/2011-October/005834.html

QEMU has a monitor command 'add_client' which can be used over
a UNIX domain socket connection with SCM_RIGHTS, to pass a
pre-opened client socket connection FD for graphics displays.
This series adds two new APIs for libspice-server.so which
enable QEMU to wire up this monitor command for SPICE, as
well as VNC.

libvirt in turn exposes the QEMU monitor command via a new
virDomainOpenConsole API. Finally virt-viewer can use this
libvirt API to connect to VNC/SPICE, by passing across one
end of a socketpair. The benefit of this approach, over just
connecting to the TCP/UNIX server socket of QEMU directly
are multiple. The TCP socket may have authenticatin enabled,
which is redundant if libvirt is authenticating clients
invoking virDomainOpenConsole. The UNIX socket may not be
accessible by the virt-viewer application, while it can
access libvirt.

In v3:

 - Update .syms file to use a new SPICE_SERVER_0.10.1
   block, since 0.10.0 is now released.
 - No functional changes

In v2:

 - Move SPICE_GNUC_VISIBLE attributes to correct patch
 - Refactor reds_accept to call spice_server_add_client
 - Add ASSERT()s in both new public APIs
 - Rename skipAuth to skip_auth

More information about the Spice-devel mailing list