diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index 105246737ef..dde15e18fc2 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -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); diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c index 46676d7a210..b871d893682 100644 --- a/src/core/dbus-util.c +++ b/src/core/dbus-util.c @@ -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, diff --git a/src/core/dbus-util.h b/src/core/dbus-util.h index 29796eb249f..0fc3a949610 100644 --- a/src/core/dbus-util.h +++ b/src/core/dbus-util.h @@ -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);