X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-core.c;h=0e7786f10395f373bca521b9bfa8a694eee0babe;hp=be83768221af4c16e3746373107a7a0d30599fcb;hb=d49b80008fd8c0952da67bee0dc8a1314f29b8a7;hpb=6d1d622bf1f4da725d11cbe5c57a757869ae54c6 diff --git a/src/login/logind-core.c b/src/login/logind-core.c index be8376822..0e7786f10 100644 --- a/src/login/logind-core.c +++ b/src/login/logind-core.c @@ -1,5 +1,3 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - /*** This file is part of systemd. @@ -117,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); @@ -347,7 +345,6 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user) { *user = s->user; #endif // 0 - return 1; } @@ -394,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 @@ -461,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, @@ -528,7 +525,7 @@ static int manager_count_external_displays(Manager *m) { continue; /* Ignore internal displays: the type is encoded in - * the sysfs name, as the second dash seperated item + * the sysfs name, as the second dash separated item * (the first is the card name, the last the connector * number). We implement a whitelist of external * displays here, rather than a whitelist, to ensure