From nobody Sun Feb 8 19:56:50 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 1553277703468198.67277407431038; Fri, 22 Mar 2019 11:01:43 -0700 (PDT) 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 C7E063002F62; Fri, 22 Mar 2019 18:01:41 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9517D5EDE5; Fri, 22 Mar 2019 18:01:41 +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 36785180338B; Fri, 22 Mar 2019 18:01:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x2MI1Tet008977 for ; Fri, 22 Mar 2019 14:01:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id C365B5D9D5; Fri, 22 Mar 2019 18:01:29 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4BE285D9D2 for ; Fri, 22 Mar 2019 18:01:29 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Fri, 22 Mar 2019 19:00:56 +0100 Message-Id: <45de939aef379f9f2a5ff17b4e15e68b6ef8be84.1553277561.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 20/29] conf: Allow convenient lookup of in virDomainStorageSourceParse 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-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.47]); Fri, 22 Mar 2019 18:01:42 +0000 (UTC) Content-Type: text/plain; charset="utf-8" If NULL is passed, the function will lookup in current context. Signed-off-by: Peter Krempa --- src/conf/domain_conf.c | 12 +++++++++++- src/conf/domain_conf.h | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 5773d07474..852489e185 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9080,7 +9080,7 @@ virDomainStorageSourceParseBase(const char *type, /** * virDomainStorageSourceParse: - * @node: XML node pointing to the source element to parse + * @node: XML node pointing to the source element to parse (see below) * @ctxt: XPath context * @src: filled with parsed data * @flags: XML parser flags @@ -9089,6 +9089,9 @@ virDomainStorageSourceParseBase(const char *type, * Parses @src definition from element pointed to by @node. Note that this * does not parse the 'type' and 'format' attributes of @src and 'type' ne= eds * to be set correctly prior to calling this function. + * + * If @node is NULL a subelement is looked up in @ctxt to be used= as + * source. Error is reported if the source is not found. */ int virDomainStorageSourceParse(xmlNodePtr node, @@ -9100,6 +9103,13 @@ virDomainStorageSourceParse(xmlNodePtr node, VIR_XPATH_NODE_AUTORESTORE(ctxt); xmlNodePtr tmp; + if (!node && + !(node =3D virXPathNode("./source", ctxt))) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("missing element for storage source")); + return -1; + } + ctxt->node =3D node; switch ((virStorageType)src->type) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index ce6e5b4748..6fb73bdaf7 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3463,7 +3463,7 @@ int virDomainStorageSourceParse(xmlNodePtr node, virStorageSourcePtr src, unsigned int flags, virDomainXMLOptionPtr xmlopt) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); + ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); int virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def, int maplen, --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list