core: implement generic log control API in PID1 too
It has slightly different setters in place, so it needs some special love, which is easy enough though.
This commit is contained in:
parent
25141692e9
commit
893f801d67
|
@ -3022,6 +3022,21 @@ const sd_bus_vtable bus_manager_vtable[] = {
|
|||
SD_BUS_VTABLE_END
|
||||
};
|
||||
|
||||
const sd_bus_vtable bus_manager_log_control_vtable[] = {
|
||||
SD_BUS_VTABLE_START(0),
|
||||
|
||||
/* We define a private version of this interface here, since we want slightly different
|
||||
* implementations for the setters. We'll still use the generic getters however, and we share the
|
||||
* setters with the implementations for the Manager interface above (which pre-dates the generic
|
||||
* service API interface). */
|
||||
|
||||
SD_BUS_WRITABLE_PROPERTY("LogLevel", "s", bus_property_get_log_level, property_set_log_level, 0, 0),
|
||||
SD_BUS_WRITABLE_PROPERTY("LogTarget", "s", bus_property_get_log_target, property_set_log_target, 0, 0),
|
||||
SD_BUS_PROPERTY("SyslogIdentifier", "s", bus_property_get_syslog_identifier, 0, 0),
|
||||
|
||||
SD_BUS_VTABLE_END,
|
||||
};
|
||||
|
||||
static int send_finished(sd_bus *bus, void *userdata) {
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL;
|
||||
usec_t *times = userdata;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "manager.h"
|
||||
|
||||
extern const sd_bus_vtable bus_manager_vtable[];
|
||||
extern const sd_bus_vtable bus_manager_log_control_vtable[];
|
||||
|
||||
void bus_manager_send_finished(Manager *m, usec_t firmware_usec, usec_t loader_usec, usec_t kernel_usec, usec_t initrd_usec, usec_t userspace_usec, usec_t total_usec);
|
||||
void bus_manager_send_reloading(Manager *m, bool active);
|
||||
|
|
|
@ -539,6 +539,10 @@ static int bus_setup_api_vtables(Manager *m, sd_bus *bus) {
|
|||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to register Manager vtable: %m");
|
||||
|
||||
r = sd_bus_add_object_vtable(bus, NULL, "/org/freedesktop/LogControl1", "org.freedesktop.LogControl1", bus_manager_log_control_vtable, m);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to register service API vtable: %m");
|
||||
|
||||
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/job", "org.freedesktop.systemd1.Job", bus_job_vtable, bus_job_find, m);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to register Job vtable: %m");
|
||||
|
|
Loading…
Reference in New Issue