systemd/0287-shared-bus-util-move-bus_message_read_id128-to-bus-m.patch
Jan Macku eb5b3a87a8 systemd-257-8
Resolves: RHEL-71409, RHEL-75774
2025-02-14 10:09:33 +01:00

198 lines
6.5 KiB
Diff

From d502fb075bb28704030598e58b93e6b274ef9bb1 Mon Sep 17 00:00:00 2001
From: Mike Yuan <me@yhndnzj.com>
Date: Sat, 11 Jan 2025 16:52:05 +0100
Subject: [PATCH] shared/bus-util: move bus_message_read_id128() to
bus-message-util
(cherry picked from commit ab33edb05b7d4c90fb80f46aa6b951c505048798)
Resolves: RHEL-73780
---
src/core/dbus-manager.c | 1 +
src/hostname/hostnamectl.c | 1 +
src/machine/machinectl.c | 1 +
src/machine/machined-dbus.c | 1 +
src/run/run.c | 1 +
src/shared/bus-map-properties.c | 1 +
src/shared/bus-message-util.c | 29 +++++++++++++++++++++++++++++
src/shared/bus-message-util.h | 2 ++
src/shared/bus-util.c | 28 ----------------------------
src/shared/bus-util.h | 2 --
10 files changed, 37 insertions(+), 30 deletions(-)
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index c4a7e2a20b..8e39d67a00 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -11,6 +11,7 @@
#include "bus-common-errors.h"
#include "bus-get-properties.h"
#include "bus-log-control-api.h"
+#include "bus-message-util.h"
#include "bus-util.h"
#include "chase.h"
#include "confidential-virt.h"
diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c
index cd4f86af80..2d1334f654 100644
--- a/src/hostname/hostnamectl.c
+++ b/src/hostname/hostnamectl.c
@@ -18,6 +18,7 @@
#include "bus-error.h"
#include "bus-locator.h"
#include "bus-map-properties.h"
+#include "bus-message-util.h"
#include "format-table.h"
#include "hostname-setup.h"
#include "hostname-util.h"
diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c
index 7843b9aa63..8854d9a550 100644
--- a/src/machine/machinectl.c
+++ b/src/machine/machinectl.c
@@ -21,6 +21,7 @@
#include "bus-error.h"
#include "bus-locator.h"
#include "bus-map-properties.h"
+#include "bus-message-util.h"
#include "bus-print-properties.h"
#include "bus-unit-procs.h"
#include "bus-unit-util.h"
diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c
index f4915f67da..05e44b5030 100644
--- a/src/machine/machined-dbus.c
+++ b/src/machine/machined-dbus.c
@@ -10,6 +10,7 @@
#include "bus-common-errors.h"
#include "bus-get-properties.h"
#include "bus-locator.h"
+#include "bus-message-util.h"
#include "bus-polkit.h"
#include "cgroup-util.h"
#include "discover-image.h"
diff --git a/src/run/run.c b/src/run/run.c
index 1b13e74b83..c4e79adc7a 100644
--- a/src/run/run.c
+++ b/src/run/run.c
@@ -15,6 +15,7 @@
#include "bus-error.h"
#include "bus-locator.h"
#include "bus-map-properties.h"
+#include "bus-message-util.h"
#include "bus-unit-util.h"
#include "bus-wait-for-jobs.h"
#include "calendarspec.h"
diff --git a/src/shared/bus-map-properties.c b/src/shared/bus-map-properties.c
index a6cd752894..18d83c336f 100644
--- a/src/shared/bus-map-properties.c
+++ b/src/shared/bus-map-properties.c
@@ -5,6 +5,7 @@
#include "bus-util.h"
#include "strv.h"
#include "bus-message.h"
+#include "bus-message-util.h"
int bus_map_id128(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
sd_id128_t *p = userdata;
diff --git a/src/shared/bus-message-util.c b/src/shared/bus-message-util.c
index d8c483ef62..e93be9b3c5 100644
--- a/src/shared/bus-message-util.c
+++ b/src/shared/bus-message-util.c
@@ -7,6 +7,35 @@
#include "copy.h"
#include "resolve-util.h"
+int bus_message_read_id128(sd_bus_message *m, sd_id128_t *ret) {
+ const void *a;
+ size_t sz;
+ int r;
+
+ assert(m);
+
+ r = sd_bus_message_read_array(m, 'y', &a, &sz);
+ if (r < 0)
+ return r;
+
+ switch (sz) {
+
+ case 0:
+ if (ret)
+ *ret = SD_ID128_NULL;
+ return 0;
+
+ case sizeof(sd_id128_t):
+ if (ret)
+ memcpy(ret, a, sz);
+ return !memeqzero(a, sz); /* This mimics sd_id128_is_null(), but ret may be NULL,
+ * and a may be misaligned, so use memeqzero() here. */
+
+ default:
+ return -EINVAL;
+ }
+}
+
int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret) {
int ifindex, r;
diff --git a/src/shared/bus-message-util.h b/src/shared/bus-message-util.h
index 50025766c2..698960561c 100644
--- a/src/shared/bus-message-util.h
+++ b/src/shared/bus-message-util.h
@@ -6,6 +6,8 @@
#include "in-addr-util.h"
#include "socket-netlink.h"
+int bus_message_read_id128(sd_bus_message *m, sd_id128_t *ret);
+
int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret);
int bus_message_read_family(sd_bus_message *message, sd_bus_error *error, int *ret);
int bus_message_read_in_addr_auto(sd_bus_message *message, sd_bus_error *error, int *ret_family, union in_addr_union *ret_addr);
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index 2cdde97b78..d3d3f1733e 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -953,34 +953,6 @@ int bus_query_sender_pidref(
return bus_creds_get_pidref(creds, ret);
}
-int bus_message_read_id128(sd_bus_message *m, sd_id128_t *ret) {
- const void *a;
- size_t sz;
- int r;
-
- assert(m);
-
- r = sd_bus_message_read_array(m, 'y', &a, &sz);
- if (r < 0)
- return r;
-
- switch (sz) {
- case 0:
- if (ret)
- *ret = SD_ID128_NULL;
- return 0;
-
- case sizeof(sd_id128_t):
- if (ret)
- memcpy(ret, a, sz);
- return !memeqzero(a, sz); /* This mimics sd_id128_is_null(), but ret may be NULL,
- * and a may be misaligned, so use memeqzero() here. */
-
- default:
- return -EINVAL;
- }
-}
-
static const char* const bus_transport_table[] = {
[BUS_TRANSPORT_LOCAL] = "local",
[BUS_TRANSPORT_REMOTE] = "remote",
diff --git a/src/shared/bus-util.h b/src/shared/bus-util.h
index 83522ad1c1..c2b9b126c8 100644
--- a/src/shared/bus-util.h
+++ b/src/shared/bus-util.h
@@ -84,6 +84,4 @@ int bus_property_get_string_set(sd_bus *bus, const char *path, const char *inter
int bus_creds_get_pidref(sd_bus_creds *c, PidRef *ret);
int bus_query_sender_pidref(sd_bus_message *m, PidRef *ret);
-int bus_message_read_id128(sd_bus_message *m, sd_id128_t *ret);
-
const char* bus_transport_to_string(BusTransport transport) _const_;