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

Daniel P. Berrange berrange at redhat.com
Fri Oct 28 05:09:44 PDT 2011


An update to:

  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 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