The logic related to spicedisable_ticketing and spicepasswd was
inverted. As per man xl.cfg(5), 'spicedisable_ticketing = 1'
means no passwd is required. On the other hand, a passwd is
required if 'spicedisable_ticketing = 0'. Fix the logic and
produce and error if 'spicedisable_ticketing = 0' but spicepasswd
is not provided. Also fix the spice cfg test file.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
src/xenconfig/xen_xl.c | 18 ++++++++++--------
tests/xlconfigdata/test-spice.cfg | 2 +-
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c
index 7f3cd89..2e9294c 100644
--- a/src/xenconfig/xen_xl.c
+++ b/src/xenconfig/xen_xl.c
@@ -192,9 +192,9 @@ xenParseXLSpice(virConfPtr conf, virDomainDefPtr def)
if (xenConfigGetBool(conf, "spicedisable_ticketing", &val, 0)
< 0)
goto cleanup;
- if (val) {
- if (xenConfigCopyStringOpt(conf, "spicepasswd",
- &graphics->data.spice.auth.passwd) <
0)
+ if (!val) {
+ if (xenConfigCopyString(conf, "spicepasswd",
+ &graphics->data.spice.auth.passwd) <
0)
goto cleanup;
}
@@ -697,13 +697,15 @@ xenFormatXLSpice(virConfPtr conf, virDomainDefPtr def)
return -1;
if (graphics->data.spice.auth.passwd) {
+ if (xenConfigSetInt(conf, "spicedisable_ticketing", 0) < 0)
+ return -1;
+
+ if (xenConfigSetString(conf, "spicepasswd",
+ graphics->data.spice.auth.passwd) < 0)
+ return -1;
+ } else {
if (xenConfigSetInt(conf, "spicedisable_ticketing", 1) < 0)
return -1;
-
- if (graphics->data.spice.auth.passwd &&
- xenConfigSetString(conf, "spicepasswd",
- graphics->data.spice.auth.passwd) < 0)
- return -1;
}
if (xenConfigSetInt(conf, "spiceagent_mouse",
diff --git a/tests/xlconfigdata/test-spice.cfg b/tests/xlconfigdata/test-spice.cfg
index b2b9742..d89f2ba 100644
--- a/tests/xlconfigdata/test-spice.cfg
+++ b/tests/xlconfigdata/test-spice.cfg
@@ -25,6 +25,6 @@ spice = 1
spicehost = "127.0.0.1"
spiceport = 590
spicetls_port = 500
-spicedisable_ticketing = 1
+spicedisable_ticketing = 0
spicepasswd = "thebeast"
spiceagent_mouse = 0
--
1.8.4.5