X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind.c;h=a54195cebb6d578ab343302090bad343630e6430;hb=3eff4208ffecedd778fec260f0d4b18e94dab443;hp=8997b4689ed1a0d1a332401d4e6c5d0f3699a98d;hpb=9b221b63e5cc62439b32bb487775856a78c6015a;p=elogind.git diff --git a/src/login/logind.c b/src/login/logind.c index 8997b4689..a54195ceb 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -782,12 +782,19 @@ finish: } int manager_get_session_by_cgroup(Manager *m, const char *cgroup, Session **session) { + Session *s; char *p; assert(m); assert(cgroup); assert(session); + s = hashmap_get(m->cgroups, cgroup); + if (s) { + *session = s; + return 1; + } + p = strdup(cgroup); if (!p) { log_error("Out of memory."); @@ -795,24 +802,23 @@ int manager_get_session_by_cgroup(Manager *m, const char *cgroup, Session **sess } for (;;) { - Session *s; char *e; - if (isempty(p) || streq(p, "/")) { + e = strrchr(p, '/'); + if (!e || e == p) { free(p); *session = NULL; return 0; } + *e = 0; + s = hashmap_get(m->cgroups, p); if (s) { free(p); *session = s; return 1; } - - assert_se(e = strrchr(p, '/')); - *e = 0; } } @@ -1210,7 +1216,7 @@ static int manager_parse_config_file(Manager *m) { assert(m); - fn = "/etc/systemd/systemd-logind.conf"; + fn = "/etc/systemd/logind.conf"; f = fopen(fn, "re"); if (!f) { if (errno == ENOENT) @@ -1234,6 +1240,7 @@ int main(int argc, char *argv[]) { int r; log_set_target(LOG_TARGET_AUTO); + log_set_facility(LOG_AUTH); log_parse_environment(); log_open();