The virDomainOpenGraphics API cannot label the socket we pass to it. Prefer virDomainOpenGraphicsFD (introduced in libvirt 1.2.8) which creates the socket for us and works with SELinux too. Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx> --- src/virt-viewer.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/virt-viewer.c b/src/virt-viewer.c index f8a9ab5..67e6055 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -423,30 +423,19 @@ virt_viewer_update_display(VirtViewer *self, virDomainPtr dom) static gboolean virt_viewer_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd) { -#if defined(HAVE_SOCKETPAIR) VirtViewer *viewer = VIRT_VIEWER(self); VirtViewerPrivate *priv = viewer->priv; - int pair[2]; -#endif + *fd = -1; -#if defined(HAVE_SOCKETPAIR) + if (!priv->dom) return TRUE; - if (socketpair(PF_UNIX, SOCK_STREAM, 0, pair) < 0) - return FALSE; - - if (virDomainOpenGraphics(priv->dom, 0, pair[0], - VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH) < 0) { + if ((*fd = virDomainOpenGraphicsFD(priv->dom, 0, + VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH)) < 0) { virErrorPtr err = virGetLastError(); g_debug("Error %s", err && err->message ? err->message : "Unknown"); - close(pair[0]); - close(pair[1]); - return TRUE; } - close(pair[0]); - *fd = pair[1]; -#endif return TRUE; } -- 1.8.5.5 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list