From nobody Fri May 16 00:36:44 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 1500903560939871.7496273617143; Mon, 24 Jul 2017 06:39:20 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 03C16356D6; Mon, 24 Jul 2017 13:39:18 +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 CE33617190; Mon, 24 Jul 2017 13:39:17 +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 89BE814B25; Mon, 24 Jul 2017 13:39:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v6ODd7Hs001747 for ; Mon, 24 Jul 2017 09:39:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id C5F1D17AF7; Mon, 24 Jul 2017 13:39:07 +0000 (UTC) Received: from antique-work.brq.redhat.com (unknown [10.43.2.41]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2524B17190 for ; Mon, 24 Jul 2017 13:39:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 03C16356D6 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 03C16356D6 From: Pavel Hrdina To: libvir-list@redhat.com Date: Mon, 24 Jul 2017 15:38:54 +0200 Message-Id: <7d1357a7800c56e8db9903070d24915e065d1c46.1500647204.git.phrdina@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [dbus PATCH 1/9] util: move bus_path_for_domain and domain_from_bus_path 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.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 24 Jul 2017 13:39:18 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" These functions don't require anything from libvirt-dbus. Make them generic and move them into util. Signed-off-by: Pavel Hrdina --- src/manager.c | 68 ++++++++++++++++++++++---------------------------------= ---- src/util.c | 26 +++++++++++++++++++++++ src/util.h | 7 ++++++ 3 files changed, 58 insertions(+), 43 deletions(-) diff --git a/src/manager.c b/src/manager.c index f541287..6459ec9 100644 --- a/src/manager.c +++ b/src/manager.c @@ -12,32 +12,6 @@ struct VirtManager { int callback_ids[VIR_DOMAIN_EVENT_ID_LAST]; }; =20 -static char * -bus_path_for_domain(virDomainPtr domain) -{ - char *path =3D NULL; - char uuid[VIR_UUID_STRING_BUFLEN] =3D ""; - - virDomainGetUUIDString(domain, uuid); - sd_bus_path_encode("/org/libvirt/domain", uuid, &path); - - return path; -} - -static virDomainPtr -domain_from_bus_path(VirtManager *manager, - const char *path) -{ - _cleanup_(freep) char *name =3D NULL; - int r; - - r =3D sd_bus_path_decode(path, "/org/libvirt/domain", &name); - if (r < 0) - return NULL; - - return virDomainLookupByUUIDString(manager->connection, name); -} - static void virDomainsFreep(virDomainPtr **domainsp) { @@ -65,7 +39,7 @@ domain_get_name(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; const char *name =3D ""; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "s", ""); =20 @@ -89,7 +63,7 @@ domain_get_uuid(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; char uuid[VIR_UUID_STRING_BUFLEN] =3D ""; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "s", ""); =20 @@ -110,7 +84,7 @@ domain_get_id(sd_bus *bus, VirtManager *manager =3D userdata; _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "u", 0); =20 @@ -129,7 +103,7 @@ domain_get_vcpus(sd_bus *bus, VirtManager *manager =3D userdata; _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "u", 0); =20 @@ -149,7 +123,7 @@ domain_get_os_type(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; _cleanup_(freep) char *os_type =3D NULL; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "s", ""); =20 @@ -173,7 +147,7 @@ domain_get_active(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int active; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "b", 0); =20 @@ -197,7 +171,7 @@ domain_get_persistent(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int persistent; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "b", 0); =20 @@ -222,7 +196,7 @@ domain_get_state(sd_bus *bus, int state =3D 0; const char *string; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "s", ""); =20 @@ -272,7 +246,7 @@ domain_get_autostart(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int autostart =3D 0; =20 - domain =3D domain_from_bus_path(manager, path); + domain =3D domain_from_bus_path(manager->connection, path); if (domain =3D=3D NULL) return sd_bus_message_append(reply, "b", 0); =20 @@ -292,7 +266,8 @@ domain_get_xml_desc(sd_bus_message *message, uint32_t flags; int r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -335,7 +310,8 @@ domain_get_stats(sd_bus_message *message, if (r < 0) return r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -369,7 +345,8 @@ domain_shutdown(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -393,7 +370,8 @@ domain_destroy(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -422,7 +400,8 @@ domain_reboot(sd_bus_message *message, if (r < 0) return r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -451,7 +430,8 @@ domain_reset(sd_bus_message *message, if (r < 0) return r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -475,7 +455,8 @@ domain_create(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -499,7 +480,8 @@ domain_undefine(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - domain =3D domain_from_bus_path(manager, sd_bus_message_get_path(messa= ge)); + domain =3D domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain =3D=3D NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, diff --git a/src/util.c b/src/util.c index caf552d..99cd6b5 100644 --- a/src/util.c +++ b/src/util.c @@ -67,3 +67,29 @@ int bus_error_set_last_virt_error(sd_bus_error *error) =20 return sd_bus_error_set(error, "org.libvirt.Error", vir_error->message= ); } + +char * +bus_path_for_domain(virDomainPtr domain) +{ + char *path =3D NULL; + char uuid[VIR_UUID_STRING_BUFLEN] =3D ""; + + virDomainGetUUIDString(domain, uuid); + sd_bus_path_encode("/org/libvirt/domain", uuid, &path); + + return path; +} + +virDomainPtr +domain_from_bus_path(virConnectPtr connection, + const char *path) +{ + _cleanup_(freep) char *name =3D NULL; + int r; + + r =3D sd_bus_path_decode(path, "/org/libvirt/domain", &name); + if (r < 0) + return NULL; + + return virDomainLookupByUUIDString(connection, name); +} diff --git a/src/util.h b/src/util.h index 1f34582..91e35d6 100644 --- a/src/util.h +++ b/src/util.h @@ -13,6 +13,13 @@ int bus_message_append_typed_parameters(sd_bus_message *= message, =20 int bus_error_set_last_virt_error(sd_bus_error *error); =20 +char * +bus_path_for_domain(virDomainPtr domain); + +virDomainPtr +domain_from_bus_path(virConnectPtr connection, + const char *path); + static inline void freep(void *p) { --=20 2.13.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list