X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-core.c;h=23d2aee43e573920ade578219b423457eeea47c7;hb=8331cb6e143dc261fd22af9a2a679196822326a9;hp=3079d45b94e4ea8d5c873e80abe8af02965c8105;hpb=07045a1a92c839fd2af80bd0c060a595021bc3b3;p=elogind.git diff --git a/src/login/logind-core.c b/src/login/logind-core.c index 3079d45b9..23d2aee43 100644 --- a/src/login/logind-core.c +++ b/src/login/logind-core.c @@ -115,8 +115,8 @@ int manager_add_user(Manager *m, uid_t uid, gid_t gid, const char *name, User ** } int manager_add_user_by_name(Manager *m, const char *name, User **_user) { - uid_t uid = 1000; - gid_t gid = 1000; + uid_t uid; + gid_t gid; int r; assert(m); @@ -345,7 +345,6 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user) { *user = s->user; #endif // 0 - return 1; } @@ -392,16 +391,16 @@ bool manager_shall_kill(Manager *m, const char *user) { assert(m); assert(user); - if (!m->kill_user_processes) + if (!m->kill_exclude_users && streq(user, "root")) return false; if (strv_contains(m->kill_exclude_users, user)) return false; - if (strv_isempty(m->kill_only_users)) - return true; + if (!strv_isempty(m->kill_only_users)) + return strv_contains(m->kill_only_users, user); - return strv_contains(m->kill_only_users, user); + return m->kill_user_processes; } #if 0 /// UNNEEDED by elogind @@ -459,7 +458,7 @@ int manager_spawn_autovt(Manager *m, unsigned int vtnr) { m->bus, "org.freedesktop.systemd1", "/org/freedesktop/systemd1", - "org.freedesktop.systemd1.Manager", + "org.freedesktop.systemd.Manager", "StartUnit", &error, NULL,