.bus_interface = "org.freedesktop.systemd1.Automount",
.bus_vtable = bus_automount_vtable,
- .bus_changing_properties = bus_automount_changing_properties,
.shutdown = automount_shutdown,
.bus_interface = "org.freedesktop.systemd1.BusName",
.bus_vtable = bus_busname_vtable,
- .bus_changing_properties = bus_busname_changing_properties,
.status_message_formats = {
.finished_start_job = {
SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Automount, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_VTABLE_END
};
-
-const char* const bus_automount_changing_properties[] = {
- "Result",
- NULL
-};
#include "sd-bus.h"
extern const sd_bus_vtable bus_automount_vtable[];
-extern const char* const bus_automount_changing_properties[];
SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(BusName, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_VTABLE_END
};
-
-const char* const bus_busname_changing_properties[] = {
- "Result",
- NULL
-};
#include "unit.h"
extern const sd_bus_vtable bus_busname_vtable[];
-extern const char* const bus_busname_changing_properties[];
SD_BUS_PROPERTY("SysFSPath", "s", NULL, offsetof(Device, sysfs), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_VTABLE_END
};
-
-const char* const bus_device_changing_properties[] = {
- "SysFSPath",
- NULL
-};
#include "unit.h"
extern const sd_bus_vtable bus_device_vtable[];
-extern const char* const bus_device_changing_properties[];
SD_BUS_VTABLE_END
};
-const char * const bus_mount_changing_properties[] = {
- "What",
- "Options",
- "Type",
- "ControlPID",
- "Result",
- NULL
-};
-
int bus_mount_set_property(
Unit *u,
const char *name,
#include "unit.h"
extern const sd_bus_vtable bus_mount_vtable[];
-extern const char * const bus_mount_changing_properties[];
int bus_mount_set_property(Unit *u, const char *name, sd_bus_message *message, UnitSetPropertiesMode mode, sd_bus_error *error);
int bus_mount_commit_properties(Unit *u);
SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Path, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_VTABLE_END
};
-
-const char* const bus_path_changing_properties[] = {
- "Result",
- NULL
-};
#include "sd-bus.h"
extern const sd_bus_vtable bus_path_vtable[];
-extern const char* const bus_path_changing_properties[];
SD_BUS_VTABLE_END
};
-const char* const bus_scope_changing_properties[] = {
- "Result",
- NULL
-};
-
static int bus_scope_set_transient_property(
Scope *s,
const char *name,
#include "unit.h"
extern const sd_bus_vtable bus_scope_vtable[];
-extern const char* const bus_scope_changing_properties[];
int bus_scope_set_property(Unit *u, const char *name, sd_bus_message *i, UnitSetPropertiesMode mode, sd_bus_error *error);
int bus_scope_commit_properties(Unit *u);
SD_BUS_VTABLE_END
};
-const char* const bus_service_changing_properties[] = {
- "ExecMainStartTimestamp",
- "ExecMainStartTimestampMonotonic",
- "ExecMainExitTimestamp",
- "ExecMainExitTimestampMonotonic",
- "ExecMainPID",
- "ExecMainCode",
- "ExecMainStatus",
- "MainPID",
- "ControlPID",
- "StatusText",
- "Result",
- NULL
-};
-
static int bus_service_set_transient_property(
Service *s,
const char *name,
#include "unit.h"
extern const sd_bus_vtable bus_service_vtable[];
-extern const char* const bus_service_changing_properties[];
int bus_service_set_property(Unit *u, const char *name, sd_bus_message *i, UnitSetPropertiesMode mode, sd_bus_error *error);
int bus_service_commit_properties(Unit *u);
SD_BUS_PROPERTY("BindIPv6Only", "s", property_get_bind_ipv6_only, offsetof(Socket, bind_ipv6_only), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Backlog", "u", bus_property_get_unsigned, offsetof(Socket, backlog), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("TimeoutUSec", "t", bus_property_get_usec, offsetof(Socket, timeout_usec), SD_BUS_VTABLE_PROPERTY_CONST),
- SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Socket, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("BindToDevice", "s", NULL, offsetof(Socket, bind_to_device), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("DirectoryMode", "u", bus_property_get_mode, offsetof(Socket, directory_mode), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("SocketMode", "u", bus_property_get_mode, offsetof(Socket, socket_mode), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Listen", "a(ss)", property_get_listen, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Mark", "i", bus_property_get_int, offsetof(Socket, mark), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("MaxConnections", "u", bus_property_get_unsigned, offsetof(Socket, max_connections), SD_BUS_VTABLE_PROPERTY_CONST),
- SD_BUS_PROPERTY("NConnections", "u", bus_property_get_unsigned, offsetof(Socket, n_connections), 0),
- SD_BUS_PROPERTY("NAccepted", "u", bus_property_get_unsigned, offsetof(Socket, n_accepted), 0),
SD_BUS_PROPERTY("MessageQueueMaxMessages", "x", bus_property_get_long, offsetof(Socket, mq_maxmsg), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("MessageQueueMessageSize", "x", bus_property_get_long, offsetof(Socket, mq_msgsize), SD_BUS_VTABLE_PROPERTY_CONST),
- SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Socket, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("ReusePort", "b", bus_property_get_bool, offsetof(Socket, reuse_port), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("SmackLabel", "s", NULL, offsetof(Socket, smack), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("SmackLabelIPIn", "s", NULL, offsetof(Socket, smack_ip_in), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("SmackLabelIPOut", "s", NULL, offsetof(Socket, smack_ip_out), SD_BUS_VTABLE_PROPERTY_CONST),
+ SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Socket, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
+ SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Socket, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
+ SD_BUS_PROPERTY("NConnections", "u", bus_property_get_unsigned, offsetof(Socket, n_connections), 0),
+ SD_BUS_PROPERTY("NAccepted", "u", bus_property_get_unsigned, offsetof(Socket, n_accepted), 0),
BUS_EXEC_COMMAND_LIST_VTABLE("ExecStartPre", offsetof(Socket, exec_command[SOCKET_EXEC_START_PRE]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
BUS_EXEC_COMMAND_LIST_VTABLE("ExecStartPost", offsetof(Socket, exec_command[SOCKET_EXEC_START_POST]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
BUS_EXEC_COMMAND_LIST_VTABLE("ExecStopPre", offsetof(Socket, exec_command[SOCKET_EXEC_STOP_PRE]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
SD_BUS_VTABLE_END
};
-const char* const bus_socket_changing_properties[] = {
- "ControlPID",
- "NAccepted",
- "NConnections",
- "Result",
- NULL
-};
-
int bus_socket_set_property(
Unit *u,
const char *name,
#include "unit.h"
extern const sd_bus_vtable bus_socket_vtable[];
-extern const char* const bus_socket_changing_properties[];
int bus_socket_set_property(Unit *u, const char *name, sd_bus_message *message, UnitSetPropertiesMode mode, sd_bus_error *error);
int bus_socket_commit_properties(Unit *u);
SD_BUS_VTABLE_END
};
-const char* const bus_swap_changing_properties[] = {
- "What",
- "Priority",
- "ControlPID",
- "Result",
- NULL
-};
-
int bus_swap_set_property(
Unit *u,
const char *name,
#include "unit.h"
extern const sd_bus_vtable bus_swap_vtable[];
-extern const char* const bus_swap_changing_properties[];
int bus_swap_set_property(Unit *u, const char *name, sd_bus_message *message, UnitSetPropertiesMode mode, sd_bus_error *error);
int bus_swap_commit_properties(Unit *u);
SD_BUS_PROPERTY("AccuracyUSec", "t", bus_property_get_usec, offsetof(Timer, accuracy_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_VTABLE_END
};
-
-const char* const bus_timer_changing_properties[] = {
- "NextElapseUSecRealtime",
- "NextElapseUSecMonotonic",
- "Result",
- NULL
-};
#include "sd-bus.h"
extern const sd_bus_vtable bus_timer_vtable[];
-extern const char* const bus_timer_changing_properties[];
* type, then for the generic unit. The clients may rely on
* this order to get atomic behavior if needed. */
- if (UNIT_VTABLE(u)->bus_changing_properties) {
-
- r = sd_bus_emit_properties_changed_strv(
- bus, p,
- UNIT_VTABLE(u)->bus_interface,
- (char**) UNIT_VTABLE(u)->bus_changing_properties);
- if (r < 0)
- return r;
+ r = sd_bus_emit_properties_changed_strv(
+ bus, p,
+ UNIT_VTABLE(u)->bus_interface,
+ NULL);
+ if (r < 0) {
+ log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r));
+ return r;
}
- return sd_bus_emit_properties_changed(
+ r = sd_bus_emit_properties_changed_strv(
bus, p,
"org.freedesktop.systemd1.Unit",
- "ActiveState",
- "SubState",
- "InactiveExitTimestamp",
- "ActiveEnterTimestamp",
- "ActiveExitTimestamp",
- "InactiveEnterTimestamp",
- "Job",
- "ConditionResult",
- "ConditionTimestamp",
NULL);
+ if (r < 0) {
+ log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r));
+ return r;
+ }
+
+ return 0;
}
void bus_unit_send_change_signal(Unit *u) {
.sub_state_to_string = device_sub_state_to_string,
.bus_interface = "org.freedesktop.systemd1.Device",
- .bus_changing_properties = bus_device_changing_properties,
.bus_vtable = bus_device_vtable,
.following = device_following,
.bus_interface = "org.freedesktop.systemd1.Mount",
.bus_vtable = bus_mount_vtable,
- .bus_changing_properties = bus_mount_changing_properties,
.bus_set_property = bus_mount_set_property,
.bus_commit_properties = bus_mount_commit_properties,
.reset_failed = path_reset_failed,
.bus_interface = "org.freedesktop.systemd1.Path",
- .bus_vtable = bus_path_vtable,
- .bus_changing_properties = bus_path_changing_properties
+ .bus_vtable = bus_path_vtable
};
.bus_interface = "org.freedesktop.systemd1.Scope",
.bus_vtable = bus_scope_vtable,
- .bus_changing_properties = bus_scope_changing_properties,
.bus_set_property = bus_scope_set_property,
.bus_commit_properties = bus_scope_commit_properties,
.bus_interface = "org.freedesktop.systemd1.Service",
.bus_vtable = bus_service_vtable,
- .bus_changing_properties = bus_service_changing_properties,
.bus_set_property = bus_service_set_property,
.bus_commit_properties = bus_service_commit_properties,
.bus_interface = "org.freedesktop.systemd1.Socket",
.bus_vtable = bus_socket_vtable,
- .bus_changing_properties = bus_socket_changing_properties,
.bus_set_property = bus_socket_set_property,
.bus_commit_properties = bus_socket_commit_properties,
.bus_interface = "org.freedesktop.systemd1.Swap",
.bus_vtable = bus_swap_vtable,
- .bus_changing_properties = bus_swap_changing_properties,
.bus_set_property = bus_swap_set_property,
.bus_commit_properties = bus_swap_commit_properties,
.bus_interface = "org.freedesktop.systemd1.Timer",
.bus_vtable = bus_timer_vtable,
- .bus_changing_properties = bus_timer_changing_properties,
};
/* The bus vtable */
const sd_bus_vtable *bus_vtable;
- /* strv list of changing properties */
- const char * const * const bus_changing_properties;
-
/* The strings to print in status messages */
UnitStatusMessageFormats status_message_formats;