mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-27 14:03:43 +03:00
Merge pull request #8985 from yuwata/bus-macro-3
tree-wide: use BUS_DEFINE_PROPERTY_GET* macros
This commit is contained in:
commit
0612ac38a7
@ -60,6 +60,9 @@ static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_personality, personality, unsig
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_ioprio, "i", ExecContext, exec_context_get_effective_ioprio);
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_ioprio_class, "i", ExecContext, exec_context_get_effective_ioprio, IOPRIO_PRIO_CLASS);
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_ioprio_priority, "i", ExecContext, exec_context_get_effective_ioprio, IOPRIO_PRIO_DATA);
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_empty_string, "s", NULL);
|
||||
static BUS_DEFINE_PROPERTY_GET_REF(property_get_syslog_level, "i", int, LOG_PRI);
|
||||
static BUS_DEFINE_PROPERTY_GET_REF(property_get_syslog_facility, "i", int, LOG_FAC);
|
||||
|
||||
static int property_get_environment_files(
|
||||
sd_bus *bus,
|
||||
@ -249,21 +252,6 @@ static int property_get_timer_slack_nsec(
|
||||
return sd_bus_message_append(reply, "t", u);
|
||||
}
|
||||
|
||||
static int property_get_empty_string(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
|
||||
return sd_bus_message_append(reply, "s", NULL);
|
||||
}
|
||||
|
||||
static int property_get_syscall_filter(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -508,42 +496,6 @@ static int property_get_working_directory(
|
||||
return sd_bus_message_append(reply, "s", wd);
|
||||
}
|
||||
|
||||
static int property_get_syslog_level(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
int *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "i", LOG_PRI(*s));
|
||||
}
|
||||
|
||||
static int property_get_syslog_facility(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
int *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "i", LOG_FAC(*s));
|
||||
}
|
||||
|
||||
static int property_get_stdio_fdname(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
|
@ -52,6 +52,8 @@ static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_architecture, "s", architectu
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_log_target, "s", log_target_to_string(log_get_target()));
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_system_state, "s", Manager, manager_state, manager_state_to_string);
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_timer_slack_nsec, "t", (uint64_t) prctl(PR_GET_TIMERSLACK));
|
||||
static BUS_DEFINE_PROPERTY_GET_REF(property_get_hashmap_size, "u", Hashmap *, hashmap_size);
|
||||
static BUS_DEFINE_PROPERTY_GET_REF(property_get_set_size, "u", Set *, set_size);
|
||||
|
||||
static int property_get_virtualization(
|
||||
sd_bus *bus,
|
||||
@ -171,42 +173,6 @@ static int property_set_log_level(
|
||||
return r;
|
||||
}
|
||||
|
||||
static int property_get_hashmap_size(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Hashmap **h = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(h);
|
||||
|
||||
return sd_bus_message_append(reply, "u", (uint32_t) hashmap_size(*h));
|
||||
}
|
||||
|
||||
static int property_get_set_size(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Set **s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "u", (uint32_t) set_size(*s));
|
||||
}
|
||||
|
||||
static int property_get_progress(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
|
@ -29,6 +29,18 @@
|
||||
#include "user-util.h"
|
||||
#include "web-util.h"
|
||||
|
||||
static bool unit_can_start_refuse_manual(Unit *u) {
|
||||
return unit_can_start(u) && !u->refuse_manual_start;
|
||||
}
|
||||
|
||||
static bool unit_can_stop_refuse_manual(Unit *u) {
|
||||
return unit_can_stop(u) && !u->refuse_manual_stop;
|
||||
}
|
||||
|
||||
static bool unit_can_isolate_refuse_manual(Unit *u) {
|
||||
return unit_can_isolate(u) && !u->refuse_manual_start;
|
||||
}
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_collect_mode, collect_mode, CollectMode);
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_load_state, unit_load_state, UnitLoadState);
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_job_mode, job_mode, JobMode);
|
||||
@ -38,7 +50,11 @@ static BUS_DEFINE_PROPERTY_GET2(property_get_active_state, "s", Unit, unit_activ
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_sub_state, "s", Unit, unit_sub_state_to_string);
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_unit_file_state, "s", Unit, unit_get_unit_file_state, unit_file_state_to_string);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_reload, "b", Unit, unit_can_reload);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_start, "b", Unit, unit_can_start_refuse_manual);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_stop, "b", Unit, unit_can_stop_refuse_manual);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_isolate, "b", Unit, unit_can_isolate_refuse_manual);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_need_daemon_reload, "b", Unit, unit_need_daemon_reload);
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_empty_strv, "as", 0);
|
||||
|
||||
static int property_get_names(
|
||||
sd_bus *bus,
|
||||
@ -49,20 +65,20 @@ static int property_get_names(
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Unit *u = userdata;
|
||||
Set **s = userdata;
|
||||
Iterator i;
|
||||
const char *t;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
assert(s);
|
||||
|
||||
r = sd_bus_message_open_container(reply, 'a', "s");
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
SET_FOREACH(t, u->names, i) {
|
||||
SET_FOREACH(t, *s, i) {
|
||||
r = sd_bus_message_append(reply, "s", t);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@ -122,22 +138,6 @@ static int property_get_dependencies(
|
||||
return sd_bus_message_close_container(reply);
|
||||
}
|
||||
|
||||
static int property_get_obsolete_dependencies(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
|
||||
/* For dependency types we don't support anymore always return an empty array */
|
||||
return sd_bus_message_append(reply, "as", 0);
|
||||
}
|
||||
|
||||
static int property_get_requires_mounts_for(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -193,60 +193,6 @@ static int property_get_unit_file_preset(
|
||||
r > 0 ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
static int property_get_can_start(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Unit *u = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
|
||||
return sd_bus_message_append(reply, "b", unit_can_start(u) && !u->refuse_manual_start);
|
||||
}
|
||||
|
||||
static int property_get_can_stop(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Unit *u = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
|
||||
return sd_bus_message_append(reply, "b", unit_can_stop(u) && !u->refuse_manual_stop);
|
||||
}
|
||||
|
||||
static int property_get_can_isolate(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Unit *u = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
|
||||
return sd_bus_message_append(reply, "b", unit_can_isolate(u) && !u->refuse_manual_start);
|
||||
}
|
||||
|
||||
static int property_get_job(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -257,20 +203,20 @@ static int property_get_job(
|
||||
sd_bus_error *error) {
|
||||
|
||||
_cleanup_free_ char *p = NULL;
|
||||
Unit *u = userdata;
|
||||
Job **j = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
assert(j);
|
||||
|
||||
if (!u->job)
|
||||
if (!*j)
|
||||
return sd_bus_message_append(reply, "(uo)", 0, "/");
|
||||
|
||||
p = job_dbus_path(u->job);
|
||||
p = job_dbus_path(*j);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
return sd_bus_message_append(reply, "(uo)", u->job->id, p);
|
||||
return sd_bus_message_append(reply, "(uo)", (*j)->id, p);
|
||||
}
|
||||
|
||||
static int property_get_conditions(
|
||||
@ -325,14 +271,14 @@ static int property_get_load_error(
|
||||
sd_bus_error *error) {
|
||||
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error e = SD_BUS_ERROR_NULL;
|
||||
Unit *u = userdata;
|
||||
int *n = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
assert(n);
|
||||
|
||||
if (u->load_error != 0)
|
||||
sd_bus_error_set_errno(&e, u->load_error);
|
||||
if (*n != 0)
|
||||
sd_bus_error_set_errno(&e, *n);
|
||||
|
||||
return sd_bus_message_append(reply, "(ss)", e.name, e.message);
|
||||
}
|
||||
@ -622,7 +568,7 @@ const sd_bus_vtable bus_unit_vtable[] = {
|
||||
SD_BUS_VTABLE_START(0),
|
||||
|
||||
SD_BUS_PROPERTY("Id", "s", NULL, offsetof(Unit, id), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Names", "as", property_get_names, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Names", "as", property_get_names, offsetof(Unit, names), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Following", "s", property_get_following, 0, 0),
|
||||
SD_BUS_PROPERTY("Requires", "as", property_get_dependencies, offsetof(Unit, dependencies[UNIT_REQUIRES]), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Requisite", "as", property_get_dependencies, offsetof(Unit, dependencies[UNIT_REQUISITE]), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
@ -664,7 +610,7 @@ const sd_bus_vtable bus_unit_vtable[] = {
|
||||
SD_BUS_PROPERTY("CanStop", "b", property_get_can_stop, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("CanReload", "b", property_get_can_reload, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("CanIsolate", "b", property_get_can_isolate, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Job", "(uo)", property_get_job, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("Job", "(uo)", property_get_job, offsetof(Unit, job), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("StopWhenUnneeded", "b", bus_property_get_bool, offsetof(Unit, stop_when_unneeded), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("RefuseManualStart", "b", bus_property_get_bool, offsetof(Unit, refuse_manual_start), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("RefuseManualStop", "b", bus_property_get_bool, offsetof(Unit, refuse_manual_stop), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
@ -683,7 +629,7 @@ const sd_bus_vtable bus_unit_vtable[] = {
|
||||
BUS_PROPERTY_DUAL_TIMESTAMP("AssertTimestamp", offsetof(Unit, assert_timestamp), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("Conditions", "a(sbbsi)", property_get_conditions, offsetof(Unit, conditions), 0),
|
||||
SD_BUS_PROPERTY("Asserts", "a(sbbsi)", property_get_conditions, offsetof(Unit, asserts), 0),
|
||||
SD_BUS_PROPERTY("LoadError", "(ss)", property_get_load_error, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("LoadError", "(ss)", property_get_load_error, offsetof(Unit, load_error), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Transient", "b", bus_property_get_bool, offsetof(Unit, transient), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Perpetual", "b", bus_property_get_bool, offsetof(Unit, perpetual), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("StartLimitIntervalUSec", "t", bus_property_get_usec, offsetof(Unit, start_limit.interval), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
@ -708,11 +654,12 @@ const sd_bus_vtable bus_unit_vtable[] = {
|
||||
SD_BUS_METHOD("Ref", NULL, NULL, bus_unit_method_ref, SD_BUS_VTABLE_UNPRIVILEGED),
|
||||
SD_BUS_METHOD("Unref", NULL, NULL, bus_unit_method_unref, SD_BUS_VTABLE_UNPRIVILEGED),
|
||||
|
||||
/* Obsolete properties or obsolete alias names */
|
||||
SD_BUS_PROPERTY("RequiresOverridable", "as", property_get_obsolete_dependencies, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("RequisiteOverridable", "as", property_get_obsolete_dependencies, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("RequiredByOverridable", "as", property_get_obsolete_dependencies, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("RequisiteOfOverridable", "as", property_get_obsolete_dependencies, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
/* For dependency types we don't support anymore always return an empty array */
|
||||
SD_BUS_PROPERTY("RequiresOverridable", "as", property_get_empty_strv, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("RequisiteOverridable", "as", property_get_empty_strv, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("RequiredByOverridable", "as", property_get_empty_strv, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("RequisiteOfOverridable", "as", property_get_empty_strv, 0, SD_BUS_VTABLE_HIDDEN),
|
||||
/* Obsolete alias names */
|
||||
SD_BUS_PROPERTY("StartLimitInterval", "t", bus_property_get_usec, offsetof(Unit, start_limit.interval), SD_BUS_VTABLE_PROPERTY_CONST|SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_PROPERTY("StartLimitIntervalSec", "t", bus_property_get_usec, offsetof(Unit, start_limit.interval), SD_BUS_VTABLE_PROPERTY_CONST|SD_BUS_VTABLE_HIDDEN),
|
||||
SD_BUS_VTABLE_END
|
||||
|
@ -277,74 +277,9 @@ static int property_get_scheduled_shutdown(
|
||||
}
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_handle_action, handle_action, HandleAction);
|
||||
|
||||
static int property_get_docked(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(m);
|
||||
|
||||
return sd_bus_message_append(reply, "b", manager_is_docked_or_external_displays(m));
|
||||
}
|
||||
|
||||
static int property_get_current_sessions(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(m);
|
||||
|
||||
return sd_bus_message_append(reply, "t", (uint64_t) hashmap_size(m->sessions));
|
||||
}
|
||||
|
||||
static int property_get_current_inhibitors(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(m);
|
||||
|
||||
return sd_bus_message_append(reply, "t", (uint64_t) hashmap_size(m->inhibitors));
|
||||
}
|
||||
|
||||
static int property_get_compat_user_tasks_max(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
assert(reply);
|
||||
|
||||
return sd_bus_message_append(reply, "t", CGROUP_LIMIT_MAX);
|
||||
}
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_docked, "b", Manager, manager_is_docked_or_external_displays);
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_compat_user_tasks_max, "t", CGROUP_LIMIT_MAX);
|
||||
static BUS_DEFINE_PROPERTY_GET_REF(property_get_hashmap_size, "t", Hashmap *, (uint64_t) hashmap_size);
|
||||
|
||||
static int method_get_session(sd_bus_message *message, void *userdata, sd_bus_error *error) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
@ -2731,9 +2666,9 @@ const sd_bus_vtable manager_vtable[] = {
|
||||
SD_BUS_PROPERTY("RemoveIPC", "b", bus_property_get_bool, offsetof(Manager, remove_ipc), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("RuntimeDirectorySize", "t", bus_property_get_size, offsetof(Manager, runtime_dir_size), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("InhibitorsMax", "t", NULL, offsetof(Manager, inhibitors_max), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("NCurrentInhibitors", "t", property_get_current_inhibitors, 0, 0),
|
||||
SD_BUS_PROPERTY("NCurrentInhibitors", "t", property_get_hashmap_size, offsetof(Manager, inhibitors), 0),
|
||||
SD_BUS_PROPERTY("SessionsMax", "t", NULL, offsetof(Manager, sessions_max), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("NCurrentSessions", "t", property_get_current_sessions, 0, 0),
|
||||
SD_BUS_PROPERTY("NCurrentSessions", "t", property_get_hashmap_size, offsetof(Manager, sessions), 0),
|
||||
SD_BUS_PROPERTY("UserTasksMax", "t", property_get_compat_user_tasks_max, 0, SD_BUS_VTABLE_PROPERTY_CONST|SD_BUS_VTABLE_HIDDEN),
|
||||
|
||||
SD_BUS_METHOD("GetSession", "s", "o", method_get_session, SD_BUS_VTABLE_UNPRIVILEGED),
|
||||
|
@ -18,6 +18,10 @@
|
||||
#include "user-util.h"
|
||||
#include "util.h"
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_multi_session, "b", Seat, seat_can_multi_session);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_tty, "b", Seat, seat_can_tty);
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_can_graphical, "b", Seat, seat_can_graphical);
|
||||
|
||||
static int property_get_active_session(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -41,60 +45,6 @@ static int property_get_active_session(
|
||||
return sd_bus_message_append(reply, "(so)", s->active ? s->active->id : "", p);
|
||||
}
|
||||
|
||||
static int property_get_can_multi_session(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Seat *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "b", seat_can_multi_session(s));
|
||||
}
|
||||
|
||||
static int property_get_can_tty(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Seat *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "b", seat_can_tty(s));
|
||||
}
|
||||
|
||||
static int property_get_can_graphical(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Seat *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "b", seat_can_graphical(s));
|
||||
}
|
||||
|
||||
static int property_get_sessions(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
|
@ -86,42 +86,8 @@ static int property_get_seat(
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_type, session_type, SessionType);
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_class, session_class, SessionClass);
|
||||
|
||||
static int property_get_active(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Session *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "b", session_is_active(s));
|
||||
}
|
||||
|
||||
static int property_get_state(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Session *s = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(s);
|
||||
|
||||
return sd_bus_message_append(reply, "s", session_state_to_string(session_get_state(s)));
|
||||
}
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_active, "b", Session, session_is_active);
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_state, "s", Session, session_get_state, session_state_to_string);
|
||||
|
||||
static int property_get_idle_hint(
|
||||
sd_bus *bus,
|
||||
|
@ -17,6 +17,8 @@
|
||||
#include "strv.h"
|
||||
#include "user-util.h"
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_state, "s", User, user_get_state, user_state_to_string);
|
||||
|
||||
static int property_get_display(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -40,24 +42,6 @@ static int property_get_display(
|
||||
return sd_bus_message_append(reply, "(so)", u->display ? u->display->id : "", p);
|
||||
}
|
||||
|
||||
static int property_get_state(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
User *u = userdata;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(u);
|
||||
|
||||
return sd_bus_message_append(reply, "s", user_state_to_string(user_get_state(u)));
|
||||
}
|
||||
|
||||
static int property_get_sessions(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
|
@ -39,31 +39,8 @@
|
||||
#include "terminal-util.h"
|
||||
#include "user-util.h"
|
||||
|
||||
static int property_get_state(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Machine *m = userdata;
|
||||
const char *state;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
assert(m);
|
||||
|
||||
state = machine_state_to_string(machine_get_state(m));
|
||||
|
||||
r = sd_bus_message_append_basic(reply, 's', state);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return 1;
|
||||
}
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_class, machine_class, MachineClass);
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_state, "s", Machine, machine_get_state, machine_state_to_string);
|
||||
|
||||
static int property_get_netif(
|
||||
sd_bus *bus,
|
||||
@ -85,8 +62,6 @@ static int property_get_netif(
|
||||
return sd_bus_message_append_array(reply, 'i', m->netif, m->n_netif * sizeof(int));
|
||||
}
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_class, machine_class, MachineClass);
|
||||
|
||||
int bus_machine_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error) {
|
||||
Machine *m = userdata;
|
||||
int r;
|
||||
|
@ -33,20 +33,7 @@
|
||||
#include "unit-name.h"
|
||||
#include "user-util.h"
|
||||
|
||||
static int property_get_pool_path(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
|
||||
return sd_bus_message_append(reply, "s", "/var/lib/machines");
|
||||
}
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_pool_path, "s", "/var/lib/machines");
|
||||
|
||||
static int property_get_pool_usage(
|
||||
sd_bus *bus,
|
||||
|
@ -1438,40 +1438,6 @@ static int bus_property_get_dnssec_statistics(
|
||||
(uint64_t) m->n_dnssec_verdict[DNSSEC_INDETERMINATE]);
|
||||
}
|
||||
|
||||
static int bus_property_get_dnssec_supported(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(reply);
|
||||
assert(m);
|
||||
|
||||
return sd_bus_message_append(reply, "b", manager_dnssec_supported(m));
|
||||
}
|
||||
|
||||
static int bus_property_get_dnssec_mode(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(reply);
|
||||
assert(m);
|
||||
|
||||
return sd_bus_message_append(reply, "s", dnssec_mode_to_string(manager_get_dnssec_mode(m)));
|
||||
}
|
||||
|
||||
static int bus_property_get_ntas(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -1503,6 +1469,8 @@ static int bus_property_get_ntas(
|
||||
}
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_dns_stub_listener_mode, dns_stub_listener_mode, DnsStubListenerMode);
|
||||
static BUS_DEFINE_PROPERTY_GET(bus_property_get_dnssec_supported, "b", Manager, manager_dnssec_supported);
|
||||
static BUS_DEFINE_PROPERTY_GET2(bus_property_get_dnssec_mode, "s", Manager, manager_get_dnssec_mode, dnssec_mode_to_string);
|
||||
|
||||
static int bus_method_reset_statistics(sd_bus_message *message, void *userdata, sd_bus_error *error) {
|
||||
Manager *m = userdata;
|
||||
|
@ -15,22 +15,8 @@
|
||||
#include "resolved-resolv-conf.h"
|
||||
#include "strv.h"
|
||||
|
||||
static int property_get_dnssec_mode(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Link *l = userdata;
|
||||
|
||||
assert(reply);
|
||||
assert(l);
|
||||
|
||||
return sd_bus_message_append(reply, "s", dnssec_mode_to_string(link_get_dnssec_mode(l)));
|
||||
}
|
||||
static BUS_DEFINE_PROPERTY_GET(property_get_dnssec_supported, "b", Link, link_dnssec_supported);
|
||||
static BUS_DEFINE_PROPERTY_GET2(property_get_dnssec_mode, "s", Link, link_get_dnssec_mode, dnssec_mode_to_string);
|
||||
|
||||
static int property_get_dns(
|
||||
sd_bus *bus,
|
||||
@ -163,23 +149,6 @@ static int property_get_ntas(
|
||||
return sd_bus_message_close_container(reply);
|
||||
}
|
||||
|
||||
static int property_get_dnssec_supported(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
Link *l = userdata;
|
||||
|
||||
assert(reply);
|
||||
assert(l);
|
||||
|
||||
return sd_bus_message_append(reply, "b", link_dnssec_supported(l));
|
||||
}
|
||||
|
||||
static int verify_unmanaged_link(Link *l, sd_bus_error *error) {
|
||||
assert(l);
|
||||
|
||||
|
@ -157,34 +157,15 @@ int bus_log_create_error(int r);
|
||||
}
|
||||
|
||||
#define ident(x) (x)
|
||||
#define BUS_DEFINE_PROPERTY_GET(function, bus_type, data_type, get1) \
|
||||
#define BUS_DEFINE_PROPERTY_GET(function, bus_type, data_type, get1) \
|
||||
BUS_DEFINE_PROPERTY_GET2(function, bus_type, data_type, get1, ident)
|
||||
|
||||
#define ref(x) (*(x))
|
||||
#define BUS_DEFINE_PROPERTY_GET_REF(function, bus_type, data_type, get) \
|
||||
BUS_DEFINE_PROPERTY_GET2(function, bus_type, data_type, ref, get)
|
||||
|
||||
#define BUS_DEFINE_PROPERTY_GET_ENUM(function, name, type) \
|
||||
int function(sd_bus *bus, \
|
||||
const char *path, \
|
||||
const char *interface, \
|
||||
const char *property, \
|
||||
sd_bus_message *reply, \
|
||||
void *userdata, \
|
||||
sd_bus_error *error) { \
|
||||
\
|
||||
const char *value; \
|
||||
type *field = userdata; \
|
||||
int r; \
|
||||
\
|
||||
assert(bus); \
|
||||
assert(reply); \
|
||||
assert(field); \
|
||||
\
|
||||
value = strempty(name##_to_string(*field)); \
|
||||
\
|
||||
r = sd_bus_message_append_basic(reply, 's', value); \
|
||||
if (r < 0) \
|
||||
return r; \
|
||||
\
|
||||
return 1; \
|
||||
}
|
||||
BUS_DEFINE_PROPERTY_GET_REF(function, "s", type, name##_to_string)
|
||||
|
||||
#define BUS_PROPERTY_DUAL_TIMESTAMP(name, offset, flags) \
|
||||
SD_BUS_PROPERTY(name, "t", bus_property_get_usec, (offset) + offsetof(struct dual_timestamp, realtime), (flags)), \
|
||||
|
@ -427,6 +427,9 @@ static int unit_enable_or_disable(UnitStatusInfo *u, sd_bus *bus, sd_bus_error *
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_time, "t", now(CLOCK_REALTIME));
|
||||
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_ntp_sync, "b", ntp_synced());
|
||||
|
||||
static int property_get_rtc_time(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
@ -456,30 +459,6 @@ static int property_get_rtc_time(
|
||||
return sd_bus_message_append(reply, "t", t);
|
||||
}
|
||||
|
||||
static int property_get_time(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
return sd_bus_message_append(reply, "t", now(CLOCK_REALTIME));
|
||||
}
|
||||
|
||||
static int property_get_ntp_sync(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
return sd_bus_message_append(reply, "b", ntp_synced());
|
||||
}
|
||||
|
||||
static int property_get_can_ntp(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
|
@ -56,7 +56,7 @@ static int property_get_current_server_name(
|
||||
assert(bus);
|
||||
assert(reply);
|
||||
|
||||
return sd_bus_message_append(reply, "s", *s ? (*s)->string : "");
|
||||
return sd_bus_message_append(reply, "s", *s ? (*s)->string : NULL);
|
||||
}
|
||||
|
||||
static int property_get_current_server_address(
|
||||
|
Loading…
x
Reference in New Issue
Block a user