From: Peter Krempa Date: Thu, 10 Mar 2022 08:57:09 +0000 (+0100) Subject: qemu: Add support for 'tlsHostname' setting of virStorageSource X-Git-Tag: v8.2.0-rc1~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e11f2eb7a8111221d1b5c28c1506d936f17c1bd5;p=thirdparty%2Flibvirt.git qemu: Add support for 'tlsHostname' setting of virStorageSource Add validation and formatting of the blockdev props. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index e5ff653a60..4195883a1e 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -843,6 +843,7 @@ qemuBlockStorageSourceGetNBDProps(virStorageSource *src, { g_autoptr(virJSONValue) serverprops = NULL; const char *tlsAlias = src->tlsAlias; + const char *tlsHostname = src->tlsHostname; virJSONValue *ret = NULL; if (src->nhosts != 1) { @@ -856,13 +857,16 @@ qemuBlockStorageSourceGetNBDProps(virStorageSource *src, if (!serverprops) return NULL; - if (onlytarget) + if (onlytarget) { tlsAlias = NULL; + tlsHostname = NULL; + } if (virJSONValueObjectAdd(&ret, "a:server", &serverprops, "S:export", src->path, "S:tls-creds", tlsAlias, + "S:tls-hostname", tlsHostname, NULL) < 0) return NULL; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index f61509d00b..b4184285bf 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4862,6 +4862,21 @@ qemuDomainValidateStorageSource(virStorageSource *src, } } + if (src->tlsHostname) { + if (actualType != VIR_STORAGE_TYPE_NETWORK || + src->protocol != VIR_STORAGE_NET_PROTOCOL_NBD) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("'tlsHostname' field is supported only with NBD disks")); + return -1; + } + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("'tlsHostname' field is not supported by this QEMU")); + return -1; + } + } + return 0; }