From cff62361053101c8823e4e8ee2cf9a14bde08b72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Tue, 16 Feb 2021 11:29:24 +0000 Subject: [PATCH] qemu: use on|off for -vnc boolean option values MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The preferred syntax for boolean options is to set the value "on" or "off". QEMU 7.1.0 will deprecate the short format we currently use. The long format has been supported with -vnc since the change to use QemuOpts in 2.2.0, so we check based on the new capability flag. Reviewed-by: Ján Tomko Reviewed-by: Peter Krempa Signed-off-by: Daniel P. Berrangé --- src/qemu/qemu_command.c | 18 ++++++++++++++---- .../graphics-vnc-tls-secret.x86_64-latest.args | 2 +- .../graphics-vnc-tls.x86_64-2.4.0.args | 2 +- .../graphics-vnc-tls.x86_64-latest.args | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a8342ff7d5..d801018aa2 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7644,8 +7644,12 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, graphics->data.vnc.sharePolicy)); } - if (graphics->data.vnc.auth.passwd || cfg->vncPassword) - virBufferAddLit(&opt, ",password"); + if (graphics->data.vnc.auth.passwd || cfg->vncPassword) { + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_OPTS)) + virBufferAddLit(&opt, ",password=on"); + else + virBufferAddLit(&opt, ",password"); + } if (cfg->vncTLS) { qemuDomainGraphicsPrivatePtr gfxPriv = QEMU_DOMAIN_GRAPHICS_PRIVATE(graphics); @@ -7670,7 +7674,10 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, virBufferAsprintf(&opt, ",tls-creds=%s", gfxPriv->tlsAlias); } else { - virBufferAddLit(&opt, ",tls"); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_OPTS)) + virBufferAddLit(&opt, ",tls=on"); + else + virBufferAddLit(&opt, ",tls"); if (cfg->vncTLSx509verify) { virBufferAddLit(&opt, ",x509verify="); virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir); @@ -7682,7 +7689,10 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, } if (cfg->vncSASL) { - virBufferAddLit(&opt, ",sasl"); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_OPTS)) + virBufferAddLit(&opt, ",sasl=on"); + else + virBufferAddLit(&opt, ",sasl"); if (cfg->vncSASLdir) virCommandAddEnvPair(cmd, "SASL_CONF_PATH", cfg->vncSASLdir); diff --git a/tests/qemuxml2argvdata/graphics-vnc-tls-secret.x86_64-latest.args b/tests/qemuxml2argvdata/graphics-vnc-tls-secret.x86_64-latest.args index 00119fcd3d..eb0df17eda 100644 --- a/tests/qemuxml2argvdata/graphics-vnc-tls-secret.x86_64-latest.args +++ b/tests/qemuxml2argvdata/graphics-vnc-tls-secret.x86_64-latest.args @@ -34,7 +34,7 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -object tls-creds-x509,id=vnc-tls-creds0,dir=/etc/pki/libvirt-vnc,\ endpoint=server,verify-peer=yes,passwordid=vnc-tls-creds0-secret0 \ --vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl \ +-vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl=on \ -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ diff --git a/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-2.4.0.args b/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-2.4.0.args index 471ff0dc77..78a47f1d30 100644 --- a/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-2.4.0.args +++ b/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-2.4.0.args @@ -26,6 +26,6 @@ server=on,wait=off \ -no-acpi \ -boot strict=on \ -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \ --vnc 127.0.0.1:3,tls,x509verify=/etc/pki/libvirt-vnc,sasl \ +-vnc 127.0.0.1:3,tls=on,x509verify=/etc/pki/libvirt-vnc,sasl=on \ -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 \ -msg timestamp=on diff --git a/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-latest.args b/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-latest.args index b739a9b9c8..1c4b948b97 100644 --- a/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-latest.args +++ b/tests/qemuxml2argvdata/graphics-vnc-tls.x86_64-latest.args @@ -31,7 +31,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \ -object tls-creds-x509,id=vnc-tls-creds0,dir=/etc/pki/libvirt-vnc,\ endpoint=server,verify-peer=yes \ --vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl \ +-vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl=on \ -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ resourcecontrol=deny \ -- 2.47.2