X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-inhibit.c;h=1e6f3837382fe163fed58bbeda901abdda364d91;hp=c93b24009bbc451ebca77c987c6f3606be18cd2f;hb=f7d51059dbf0870887bfab06965c2deb367e785e;hpb=f5eb2a086bc5d5d36bc2e4755a1d6b508e202250 diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c index c93b24009..1e6f38373 100644 --- a/src/login/logind-inhibit.c +++ b/src/login/logind-inhibit.c @@ -26,7 +26,7 @@ #include "escape.h" #include "fd-util.h" #include "fileio.h" -#include "formats-util.h" +#include "format-util.h" #include "logind-inhibit.h" #include "mkdir.h" #include "parse-util.h" @@ -294,7 +294,7 @@ int inhibitor_create_fifo(Inhibitor *i) { if (r < 0) return r; - i->fifo_path = strjoin("/run/systemd/inhibit/", i->id, ".ref", NULL); + i->fifo_path = strjoin("/run/systemd/inhibit/", i->id, ".ref"); if (!i->fifo_path) return -ENOMEM; @@ -347,7 +347,7 @@ InhibitWhat manager_inhibit_what(Manager *m, InhibitMode mm) { assert(m); HASHMAP_FOREACH(i, m->inhibitors, j) - if (i->mode == mm) + if (i->mode == mm && i->started) what |= i->what; return what; @@ -388,6 +388,9 @@ bool manager_is_inhibited( assert(w > 0 && w < _INHIBIT_WHAT_MAX); HASHMAP_FOREACH(i, m->inhibitors, j) { + if (!i->started) + continue; + if (!(i->what & w)) continue;