[PATCH] qemu: Enable disconnecting SPICE clients without changing password

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Libvirt updates the configuration of SPICE server only when something
changes. This is unfortunate when the user wants to disconnect a
existing spice session when the connected attribute is already
"disconnect".

This patch modifies the conditions for calling the password updater to
be called when nothing changes, but the connected attribute is already
"disconnect".
---
 src/qemu/qemu_hotplug.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 51b8915..c2fa75b 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1539,7 +1539,7 @@ qemuDomainChangeGraphics(struct qemud_driver *driver,
                             _("cannot change listen address setting on spice graphics"));
             return -1;
         }
-        if (STRNEQ_NULLABLE(oldListenNetwork,newListenNetwork)) {
+        if (STRNEQ_NULLABLE(oldListenNetwork, newListenNetwork)) {
             qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                             _("cannot change listen network setting on spice graphics"));
             return -1;
@@ -1551,11 +1551,16 @@ qemuDomainChangeGraphics(struct qemud_driver *driver,
             return -1;
         }

-        /* If a password lifetime was, or is set, then we must always run,
-         * even if new password matches old password */
+        /* We must reset the password if it has changed but also if:
+         * - password lifetime is or was set
+         * - the requested action has changed
+         * - the action is "disconnect"
+         */
         if (olddev->data.spice.auth.expires ||
             dev->data.spice.auth.expires ||
             olddev->data.spice.auth.connected != dev->data.spice.auth.connected ||
+            dev->data.spice.auth.connected ==
+            VIR_DOMAIN_GRAPHICS_AUTH_CONNECTED_DISCONNECT ||
             STRNEQ_NULLABLE(olddev->data.spice.auth.passwd,
                             dev->data.spice.auth.passwd)) {
             VIR_DEBUG("Updating password on SPICE server %p %p",
-- 
1.7.8.6

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]