X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fdbus-manager.c;h=6d0ecc3df95720e248df6b3771953ac598ad34c4;hb=b5e9dba8d60b8fb80b6302b6ea2cd665b3ab370c;hp=549f175eb940e321114633767fee270ee9a45078;hpb=77d98d666a4ef24ef22f032476fd5d954c1a4699;p=elogind.git diff --git a/src/dbus-manager.c b/src/dbus-manager.c index 549f175eb..6d0ecc3df 100644 --- a/src/dbus-manager.c +++ b/src/dbus-manager.c @@ -801,8 +801,11 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, job_type = JOB_RELOAD; } - if (job_type == JOB_START && u->meta.only_by_dependency) { - dbus_set_error(&error, BUS_ERROR_ONLY_BY_DEPENDENCY, "Unit may be activated by dependency only."); + if ((job_type == JOB_START && u->meta.refuse_manual_start) || + (job_type == JOB_STOP && u->meta.refuse_manual_stop) || + ((job_type == JOB_RESTART || job_type == JOB_TRY_RESTART) && + (u->meta.refuse_manual_start || u->meta.refuse_manual_stop))) { + dbus_set_error(&error, BUS_ERROR_ONLY_BY_DEPENDENCY, "Operation refused, may be requested by dependency only."); return bus_send_error_reply(m, connection, message, &error, -EPERM); }