From nobody Mon Dec 15 01:54:18 2025 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1508427300609994.5913973799278; Thu, 19 Oct 2017 08:35:00 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7B17B806A2; Thu, 19 Oct 2017 15:34:59 +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 4FF93C9F5F; Thu, 19 Oct 2017 15:34:59 +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 151B9410B5; Thu, 19 Oct 2017 15:34:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v9JFYo2T013207 for ; Thu, 19 Oct 2017 11:34:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id DDD6FC3A8F; Thu, 19 Oct 2017 15:34:50 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 592B6C5E7F for ; Thu, 19 Oct 2017 15:34:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7B17B806A2 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Thu, 19 Oct 2017 17:34:30 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/5] qemu: Introduce privateData object for virStorageSource 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: , MIME-Version: 1.0 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.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Thu, 19 Oct 2017 15:35:00 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: John Ferlan Add the object definition and helpers to store security-related private data for virStorageSources. Signed-off-by: John Ferlan Signed-off-by: Peter Krempa --- src/qemu/qemu_domain.c | 43 +++++++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 17 +++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 41009331a..f44e1436d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -932,6 +932,49 @@ qemuDomainDiskPrivateDispose(void *obj) } +static virClassPtr qemuDomainStorageSourcePrivateClass; +static void qemuDomainStorageSourcePrivateDispose(void *obj); + +static int +qemuDomainStorageSourcePrivateOnceInit(void) +{ + qemuDomainStorageSourcePrivateClass =3D virClassNew(virClassForObject(= ), + "qemuDomainStorageSo= urcePrivate", + sizeof(qemuDomainSto= rageSourcePrivate), + qemuDomainStorageSou= rcePrivateDispose); + if (!qemuDomainStorageSourcePrivateClass) + return -1; + else + return 0; +} + +VIR_ONCE_GLOBAL_INIT(qemuDomainStorageSourcePrivate) + +virObjectPtr +qemuDomainStorageSourcePrivateNew(void) +{ + qemuDomainStorageSourcePrivatePtr priv; + + if (qemuDomainStorageSourcePrivateInitialize() < 0) + return NULL; + + if (!(priv =3D virObjectNew(qemuDomainStorageSourcePrivateClass))) + return NULL; + + return (virObjectPtr) priv; +} + + +static void +qemuDomainStorageSourcePrivateDispose(void *obj) +{ + qemuDomainStorageSourcePrivatePtr priv =3D obj; + + qemuDomainSecretInfoFree(&priv->secinfo); + qemuDomainSecretInfoFree(&priv->encinfo); +} + + static virClassPtr qemuDomainHostdevPrivateClass; static void qemuDomainHostdevPrivateDispose(void *obj); diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 7c9364f35..2e1515fa1 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -363,6 +363,23 @@ struct _qemuDomainDiskPrivate { bool removable; /* device media can be removed/changed */ }; +# define QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src) \ + ((qemuDomainStorageSourcePrivatePtr) (src)->privateData) + +typedef struct _qemuDomainStorageSourcePrivate qemuDomainStorageSourcePriv= ate; +typedef qemuDomainStorageSourcePrivate *qemuDomainStorageSourcePrivatePtr; +struct _qemuDomainStorageSourcePrivate { + virObject parent; + + /* data required for authentication to the storage source */ + qemuDomainSecretInfoPtr secinfo; + + /* data required for decryption of encrypted storage source */ + qemuDomainSecretInfoPtr encinfo; +}; + +virObjectPtr qemuDomainStorageSourcePrivateNew(void); + # define QEMU_DOMAIN_HOSTDEV_PRIVATE(hostdev) \ ((qemuDomainHostdevPrivatePtr) (hostdev)->privateData) --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list