X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus-unit.c;h=d25f325013973deee12acb7c13f37a7bc65a5a02;hp=ce34130993872bf018316a1d7003e45724e4a03e;hb=30609d9c187331640125d6b7e3c650330304b383;hpb=064f51fa29c1dfd7c0704feb969eb59119e57854 diff --git a/src/dbus-unit.c b/src/dbus-unit.c index ce3413099..d25f32501 100644 --- a/src/dbus-unit.c +++ b/src/dbus-unit.c @@ -47,6 +47,24 @@ int bus_unit_append_names(Manager *m, DBusMessageIter *i, const char *property, return 0; } +int bus_unit_append_following(Manager *m, DBusMessageIter *i, const char *property, void *data) { + Unit *u = data, *f; + const char *d; + + assert(m); + assert(i); + assert(property); + assert(u); + + f = unit_following(u); + d = f ? f->meta.id : ""; + + if (!dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &d)) + return -ENOMEM; + + return 0; +} + int bus_unit_append_dependencies(Manager *m, DBusMessageIter *i, const char *property, void *data) { Unit *u; Iterator j; @@ -298,6 +316,13 @@ static DBusHandlerResult bus_unit_message_dispatch(Unit *u, DBusConnection *conn } else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Unit", "ReloadOrTryRestart")) { reload_if_possible = true; job_type = JOB_TRY_RESTART; + } else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Unit", "ResetMaintenance")) { + + unit_reset_maintenance(u); + + if (!(reply = dbus_message_new_method_return(message))) + goto oom; + } else if (UNIT_VTABLE(u)->bus_message_handler) return UNIT_VTABLE(u)->bus_message_handler(u, connection, message); else