X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus-unit.c;h=b110e3317459119e1cefab466dc11257c5c04706;hp=266fb39be20e1e8ca0babc3f0b4cc941a4e9744b;hb=ff01d048b4c1455241c894cf7982662c9d28fd34;hpb=0a524ba7c3d86f17e61928763633b5a817a7d020 diff --git a/src/dbus-unit.c b/src/dbus-unit.c index 266fb39be..b110e3317 100644 --- a/src/dbus-unit.c +++ b/src/dbus-unit.c @@ -145,6 +145,22 @@ int bus_unit_append_sub_state(DBusMessageIter *i, const char *property, void *da return 0; } +int bus_unit_append_file_state(DBusMessageIter *i, const char *property, void *data) { + Unit *u = data; + const char *state; + + assert(i); + assert(property); + assert(u); + + state = strempty(unit_file_state_to_string(unit_get_unit_file_state(u))); + + if (!dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &state)) + return -ENOMEM; + + return 0; +} + int bus_unit_append_can_start(DBusMessageIter *i, const char *property, void *data) { Unit *u = data; dbus_bool_t b; @@ -330,6 +346,30 @@ int bus_unit_append_need_daemon_reload(DBusMessageIter *i, const char *property, return 0; } +int bus_unit_append_load_error(DBusMessageIter *i, const char *property, void *data) { + Unit *u = data; + const char *name, *message; + DBusMessageIter sub; + + assert(i); + assert(property); + assert(u); + + if (u->meta.load_error != 0) { + name = bus_errno_to_dbus(u->meta.load_error); + message = strempty(strerror(-u->meta.load_error)); + } else + name = message = ""; + + if (!dbus_message_iter_open_container(i, DBUS_TYPE_STRUCT, NULL, &sub) || + !dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &name) || + !dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &message) || + !dbus_message_iter_close_container(i, &sub)) + return -ENOMEM; + + return 0; +} + static DBusHandlerResult bus_unit_message_dispatch(Unit *u, DBusConnection *connection, DBusMessage *message) { DBusMessage *reply = NULL; Manager *m = u->meta.manager;