]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/dbus-util: move dbus setter/getter for PrivateTmp to dbus-execute
authorMike Yuan <me@yhndnzj.com>
Tue, 18 Jun 2024 13:35:43 +0000 (15:35 +0200)
committerMike Yuan <me@yhndnzj.com>
Fri, 21 Jun 2024 15:23:16 +0000 (17:23 +0200)
As with all other properties for ExecContext

src/core/dbus-execute.c
src/core/dbus-util.c
src/core/dbus-util.h

index 105246737ef1200644e363f382b1ade63ced930f..dde15e18fc2fab21f67311f03e116ff88b71bf99 100644 (file)
@@ -950,6 +950,21 @@ static int property_get_image_policy(
         return sd_bus_message_append(reply, "s", s);
 }
 
+static int property_get_private_tmp(
+                sd_bus *bus,
+                const char *path,
+                const char *interface,
+                const char *property,
+                sd_bus_message *reply,
+                void *userdata,
+                sd_bus_error *error) {
+
+        PrivateTmp *p = ASSERT_PTR(userdata);
+        int b = *p != PRIVATE_TMP_OFF;
+
+        return sd_bus_message_append_basic(reply, 'b', &b);
+}
+
 const sd_bus_vtable bus_exec_vtable[] = {
         SD_BUS_VTABLE_START(0),
         SD_BUS_PROPERTY("Environment", "as", NULL, offsetof(ExecContext, environment), SD_BUS_VTABLE_PROPERTY_CONST),
@@ -1062,7 +1077,7 @@ const sd_bus_vtable bus_exec_vtable[] = {
         SD_BUS_PROPERTY("NoExecPaths", "as", NULL, offsetof(ExecContext, no_exec_paths), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("ExecSearchPath", "as", NULL, offsetof(ExecContext, exec_search_path), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("MountFlags", "t", bus_property_get_ulong, offsetof(ExecContext, mount_propagation_flag), SD_BUS_VTABLE_PROPERTY_CONST),
-        SD_BUS_PROPERTY("PrivateTmp", "b", bus_property_get_private_tmp, offsetof(ExecContext, private_tmp), SD_BUS_VTABLE_PROPERTY_CONST),
+        SD_BUS_PROPERTY("PrivateTmp", "b", property_get_private_tmp, offsetof(ExecContext, private_tmp), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("PrivateDevices", "b", bus_property_get_bool, offsetof(ExecContext, private_devices), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("ProtectClock", "b", bus_property_get_bool, offsetof(ExecContext, protect_clock), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_PROPERTY("ProtectKernelTunables", "b", bus_property_get_bool, offsetof(ExecContext, protect_kernel_tunables), SD_BUS_VTABLE_PROPERTY_CONST),
@@ -1742,8 +1757,20 @@ int bus_exec_context_set_transient_property(
         if (streq(name, "TTYColumns"))
                 return bus_set_transient_unsigned(u, name, &c->tty_cols, message, flags, error);
 
-        if (streq(name, "PrivateTmp"))
-                return bus_set_transient_private_tmp(u, name, &c->private_tmp, message, flags, error);
+        if (streq(name, "PrivateTmp")) {
+                int v;
+
+                r = sd_bus_message_read(message, "b", &v);
+                if (r < 0)
+                        return r;
+
+                if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
+                        c->private_tmp = v ? PRIVATE_TMP_CONNECTED : PRIVATE_TMP_OFF;
+                        (void) unit_write_settingf(u, flags, name, "%s=%s", name, yes_no(v));
+                }
+
+                return 1;
+        }
 
         if (streq(name, "PrivateDevices"))
                 return bus_set_transient_bool(u, name, &c->private_devices, message, flags, error);
index 46676d7a210a471483f984720a06733f28857ac3..b871d89368227c29585acc1514df2d7bb5e0cf45 100644 (file)
@@ -150,45 +150,6 @@ int bus_set_transient_usec_internal(
         return 1;
 }
 
-int bus_set_transient_private_tmp(
-                Unit *u,
-                const char *name,
-                PrivateTmp *p,
-                sd_bus_message *message,
-                UnitWriteFlags flags,
-                sd_bus_error *error) {
-
-        int v, r;
-
-        assert(p);
-
-        r = sd_bus_message_read(message, "b", &v);
-        if (r < 0)
-                return r;
-
-        if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
-                *p = v ? PRIVATE_TMP_CONNECTED : PRIVATE_TMP_OFF;
-                unit_write_settingf(u, flags, name, "%s=%s", name, yes_no(v));
-        }
-
-        return 1;
-}
-
-int bus_property_get_private_tmp(
-                sd_bus *bus,
-                const char *path,
-                const char *interface,
-                const char *property,
-                sd_bus_message *reply,
-                void *userdata,
-                sd_bus_error *error) {
-
-        PrivateTmp *p = ASSERT_PTR(userdata);
-        int b = *p != PRIVATE_TMP_OFF;
-
-        return sd_bus_message_append_basic(reply, 'b', &b);
-}
-
 int bus_verify_manage_units_async_full(
                 Unit *u,
                 const char *verb,
index 29796eb249ffbf040e3e00c1272ad05df46719a2..0fc3a949610a734a2c70b2d67bd0fbec4ede0ec0 100644 (file)
@@ -4,7 +4,6 @@
 #include "sd-bus.h"
 
 #include "dissect-image.h"
-#include "execute.h"
 #include "unit.h"
 
 int bus_property_get_triggered_unit(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
@@ -245,7 +244,6 @@ int bus_set_transient_string(Unit *u, const char *name, char **p, sd_bus_message
 int bus_set_transient_bool(Unit *u, const char *name, bool *p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_tristate(Unit *u, const char *name, int *p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_usec_internal(Unit *u, const char *name, usec_t *p, bool fix_0, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
-int bus_set_transient_private_tmp(Unit *u, const char *name, PrivateTmp *p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 static inline int bus_set_transient_usec(Unit *u, const char *name, usec_t *p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error) {
         return bus_set_transient_usec_internal(u, name, p, false, message, flags, error);
 }
@@ -257,4 +255,3 @@ int bus_verify_manage_units_async_full(Unit *u, const char *verb, const char *po
 int bus_read_mount_options(sd_bus_message *message, sd_bus_error *error, MountOptions **ret_options, char **ret_format_str, const char *separator);
 
 int bus_property_get_activation_details(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_get_private_tmp(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);