X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus-execute.c;h=201f6b596ad5dd04e94648b55fb9b00359c7497f;hp=35e6d377eec15812c74b89608b2d6ff013502c55;hb=ba1d5596354e3299d5b9b995bb0fa9b3bdd285cc;hpb=260abb780a135e4cae8c10715c7e85675efc345a diff --git a/src/dbus-execute.c b/src/dbus-execute.c index 35e6d377e..201f6b596 100644 --- a/src/dbus-execute.c +++ b/src/dbus-execute.c @@ -27,17 +27,17 @@ #include "missing.h" #include "ioprio.h" #include "strv.h" +#include "dbus-common.h" DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_execute_append_kill_mode, kill_mode, KillMode); DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_execute_append_input, exec_input, ExecInput); DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_execute_append_output, exec_output, ExecOutput); -int bus_execute_append_env_files(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_env_files(DBusMessageIter *i, const char *property, void *data) { char **env_files = data, **j; DBusMessageIter sub, sub2; - assert(m); assert(i); assert(property); @@ -66,11 +66,10 @@ int bus_execute_append_env_files(Manager *m, DBusMessageIter *i, const char *pro return 0; } -int bus_execute_append_oom_score_adjust(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_oom_score_adjust(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; int32_t n; - assert(m); assert(i); assert(property); assert(c); @@ -101,11 +100,10 @@ int bus_execute_append_oom_score_adjust(Manager *m, DBusMessageIter *i, const ch return 0; } -int bus_execute_append_nice(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_nice(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; int32_t n; - assert(m); assert(i); assert(property); assert(c); @@ -121,11 +119,10 @@ int bus_execute_append_nice(Manager *m, DBusMessageIter *i, const char *property return 0; } -int bus_execute_append_ioprio(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_ioprio(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; int32_t n; - assert(m); assert(i); assert(property); assert(c); @@ -141,11 +138,10 @@ int bus_execute_append_ioprio(Manager *m, DBusMessageIter *i, const char *proper return 0; } -int bus_execute_append_cpu_sched_policy(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_cpu_sched_policy(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; int32_t n; - assert(m); assert(i); assert(property); assert(c); @@ -161,11 +157,10 @@ int bus_execute_append_cpu_sched_policy(Manager *m, DBusMessageIter *i, const ch return 0; } -int bus_execute_append_cpu_sched_priority(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_cpu_sched_priority(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; int32_t n; - assert(m); assert(i); assert(property); assert(c); @@ -187,12 +182,11 @@ int bus_execute_append_cpu_sched_priority(Manager *m, DBusMessageIter *i, const return 0; } -int bus_execute_append_affinity(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_affinity(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; dbus_bool_t b; DBusMessageIter sub; - assert(m); assert(i); assert(property); assert(c); @@ -214,11 +208,10 @@ int bus_execute_append_affinity(Manager *m, DBusMessageIter *i, const char *prop return 0; } -int bus_execute_append_timer_slack_nsec(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_timer_slack_nsec(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; uint64_t u; - assert(m); assert(i); assert(property); assert(c); @@ -234,31 +227,29 @@ int bus_execute_append_timer_slack_nsec(Manager *m, DBusMessageIter *i, const ch return 0; } -int bus_execute_append_capability_bs(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_capability_bs(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; uint64_t normal, inverted; - assert(m); assert(i); assert(property); assert(c); - /* We store this negated internally, to match the kernel, bu + /* We store this negated internally, to match the kernel, but * we expose it normalized. */ normal = *(uint64_t*) data; inverted = ~normal; - return bus_property_append_uint64(m, i, property, &inverted); + return bus_property_append_uint64(i, property, &inverted); } -int bus_execute_append_capabilities(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_capabilities(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; char *t = NULL; const char *s; dbus_bool_t b; - assert(m); assert(i); assert(property); assert(c); @@ -282,12 +273,11 @@ int bus_execute_append_capabilities(Manager *m, DBusMessageIter *i, const char * return 0; } -int bus_execute_append_rlimits(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_rlimits(DBusMessageIter *i, const char *property, void *data) { ExecContext *c = data; int r; uint64_t u; - assert(m); assert(i); assert(property); assert(c); @@ -311,21 +301,21 @@ int bus_execute_append_rlimits(Manager *m, DBusMessageIter *i, const char *prope return 0; } -int bus_execute_append_command(Manager *m, DBusMessageIter *i, const char *property, void *data) { +int bus_execute_append_command(DBusMessageIter *i, const char *property, void *data) { ExecCommand *c = data; DBusMessageIter sub, sub2, sub3; - assert(m); assert(i); assert(property); - if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttuii)", &sub)) + if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttttuii)", &sub)) return -ENOMEM; LIST_FOREACH(command, c, c) { char **l; uint32_t pid; int32_t code, status; + dbus_bool_t b; if (!c->path) continue; @@ -343,10 +333,14 @@ int bus_execute_append_command(Manager *m, DBusMessageIter *i, const char *prope code = (int32_t) c->exec_status.code; status = (int32_t) c->exec_status.status; + b = !!c->ignore; + if (!dbus_message_iter_close_container(&sub2, &sub3) || - !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &c->ignore) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &b) || !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.realtime) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.monotonic) || !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.exit_timestamp.realtime) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.exit_timestamp.monotonic) || !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT32, &pid) || !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_INT32, &code) || !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_INT32, &status))