Before commit b1ea7b79e1, it was possible to start with -spice disable-ticketing, and then use the "set_password spice" command to enable ticketing with SPICE. Since commit b1ea7b79e1 this is no longer possible as qemu_spice_set_ticket() will return an error unless the 'auth' type is "spice". When ticketing is disabled, 'auth' is "none" so the attempt to set password fails.
This change of behaviour caused a bug in oVirt https://gerrit.ovirt.org/#/c/44842/ This commit allows to call qemu_spice_set_ticket() when 'auth' is "none" and changes 'auth' to "spice" when this happens. Signed-off-by: Christophe Fergeau <cferg...@redhat.com> Reviewed-by: Daniel P. Berrange <berra...@redhat.com> --- Changes since v2: - Added mention of the oVirt bug which was caused by the change of behaviour ui/spice-core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/spice-core.c b/ui/spice-core.c index 4da3042..3b20c6c 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -882,6 +882,10 @@ static int qemu_spice_set_ticket(bool fail_if_conn, bool disconnect_if_conn) int qemu_spice_set_passwd(const char *passwd, bool fail_if_conn, bool disconnect_if_conn) { + if (strcmp(auth, "none") == 0) { + /* Allow to set a password when started with 'disable-ticketing' */ + auth = "spice"; + } if (strcmp(auth, "spice") != 0) { return -1; } -- 2.5.0