From nobody Sun Feb 8 11:59:22 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1547558628756176.4679410933469; Tue, 15 Jan 2019 05:23:48 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 96C457F6A7; Tue, 15 Jan 2019 13:23:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 540AD5D781; Tue, 15 Jan 2019 13:23:45 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id ED6E33F604; Tue, 15 Jan 2019 13:23:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0FDNWAg011051 for ; Tue, 15 Jan 2019 08:23:32 -0500 Received: by smtp.corp.redhat.com (Postfix) id 2610A6031B; Tue, 15 Jan 2019 13:23:32 +0000 (UTC) Received: from lpt.brq.redhat.com (unknown [10.43.2.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9FA0E600C8 for ; Tue, 15 Jan 2019 13:23:27 +0000 (UTC) From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: libvir-list@redhat.com Date: Tue, 15 Jan 2019 14:22:59 +0100 Message-Id: <700ae73b264e64657448ab88fed74a5098e7343f.1547558465.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 03/23] qemu.conf: fill out TLS verify attributes after parsing X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 15 Jan 2019 13:23:47 +0000 (UTC) Introduce a set of bool variables with the 'present' suffix to track whether the value was actually specified. Signed-off-by: J=C3=A1n Tomko Reviewed-by: John Ferlan --- src/qemu/qemu_conf.c | 28 ++++++++++++++++++++++++---- src/qemu/qemu_conf.h | 6 ++++++ src/qemu/qemu_driver.c | 3 +++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index b03e38b831..a0855032e5 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -535,8 +535,8 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr = cfg, goto cleanup; if ((rv =3D virConfGetValueBool(conf, "vnc_tls_x509_verify", &cfg->vnc= TLSx509verify)) < 0) goto cleanup; - if (rv =3D=3D 0) - cfg->vncTLSx509verify =3D cfg->defaultTLSx509verify; + if (rv =3D=3D 1) + cfg->vncTLSx509verifyPresent =3D true; if (virConfGetValueString(conf, "vnc_tls_x509_cert_dir", &cfg->vncTLSx= 509certdir) < 0) goto cleanup; if (virConfGetValueString(conf, "vnc_listen", &cfg->vncListen) < 0) @@ -601,8 +601,8 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr = cfg, if ((rv =3D virConfGetValueBool(conf, #val "_tls_x509_verify", \ &cfg->val## TLSx509verify)) < 0) \ goto cleanup; \ - if (rv =3D=3D 0) \ - cfg->val## TLSx509verify =3D cfg->defaultTLSx509verify; \ + if (rv =3D=3D 1) \ + cfg->val## TLSx509verifyPresent =3D true; \ if ((rv =3D virConfGetValueString(conf, #val "_tls_x509_cert_dir",= \ &cfg->val## TLSx509certdir)) < 0) \ goto cleanup; \ @@ -1055,6 +1055,26 @@ virQEMUDriverConfigValidate(virQEMUDriverConfigPtr c= fg) return 0; } =20 +int +virQEMUDriverConfigSetDefaults(virQEMUDriverConfigPtr cfg) +{ + int ret =3D -1; + +#define SET_TLS_VERIFY_DEFAULT(val) \ + do { \ + if (!cfg->val## TLSx509verifyPresent) \ + cfg->val## TLSx509verify =3D cfg->defaultTLSx509verify; \ + } while (0) + + SET_TLS_VERIFY_DEFAULT(vnc); + SET_TLS_VERIFY_DEFAULT(chardev); + SET_TLS_VERIFY_DEFAULT(migrate); + +#undef SET_TLS_VERIFY_DEFAULT + + ret =3D 0; + return ret; +} =20 virQEMUDriverConfigPtr virQEMUDriverGetConfig(virQEMUDriverPtr driver) { diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index 1013cfcaed..87e730058b 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -122,6 +122,7 @@ struct _virQEMUDriverConfig { bool vncAutoUnixSocket; bool vncTLS; bool vncTLSx509verify; + bool vncTLSx509verifyPresent; bool vncSASL; char *vncTLSx509certdir; char *vncListen; @@ -139,10 +140,12 @@ struct _virQEMUDriverConfig { bool chardevTLS; char *chardevTLSx509certdir; bool chardevTLSx509verify; + bool chardevTLSx509verifyPresent; char *chardevTLSx509secretUUID; =20 char *migrateTLSx509certdir; bool migrateTLSx509verify; + bool migrateTLSx509verifyPresent; char *migrateTLSx509secretUUID; =20 unsigned int remotePortMin; @@ -317,6 +320,9 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr = cfg, int virQEMUDriverConfigValidate(virQEMUDriverConfigPtr cfg); =20 +int +virQEMUDriverConfigSetDefaults(virQEMUDriverConfigPtr cfg); + virQEMUDriverConfigPtr virQEMUDriverGetConfig(virQEMUDriverPtr driver); bool virQEMUDriverIsPrivileged(virQEMUDriverPtr driver); =20 diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 1d961707cc..5032edec50 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -628,6 +628,9 @@ qemuStateInitialize(bool privileged, if (virQEMUDriverConfigValidate(cfg) < 0) goto error; =20 + if (virQEMUDriverConfigSetDefaults(cfg) < 0) + goto error; + if (virFileMakePath(cfg->stateDir) < 0) { virReportSystemError(errno, _("Failed to create state dir %s"), cfg->stateDir); --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list