X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-inhibit.c;h=60b6237ce5e71b3604bbee4b528a74cfa2956992;hb=490d99e9bf949a855ff9183465f2c265777a3272;hp=2007ec79e4b35a8ff12d1879bef8c5127ed313dc;hpb=4943c1c94ba751c98763f4232b4350481b22c90a;p=elogind.git diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c index 2007ec79e..60b6237ce 100644 --- a/src/login/logind-inhibit.c +++ b/src/login/logind-inhibit.c @@ -84,7 +84,7 @@ int inhibitor_save(Inhibitor *i) { assert(i); - r = safe_mkdir("/run/systemd/inhibit", 0755, 0, 0); + r = mkdir_safe_label("/run/systemd/inhibit", 0755, 0, 0); if (r < 0) goto finish; @@ -163,7 +163,7 @@ int inhibitor_start(Inhibitor *i) { i->started = true; - manager_send_changed(i->manager, "Inhibited\0"); + manager_send_changed(i->manager, i->mode == INHIBIT_BLOCK ? "BlockInhibited\0" : "DelayInhibited\0"); return 0; } @@ -182,7 +182,7 @@ int inhibitor_stop(Inhibitor *i) { i->started = false; - manager_send_changed(i->manager, "Inhibited\0"); + manager_send_changed(i->manager, i->mode == INHIBIT_BLOCK ? "BlockInhibited\0" : "DelayInhibited\0"); return 0; } @@ -219,11 +219,17 @@ int inhibitor_load(Inhibitor *i) { if (mm >= 0) i->mode = mm; - if (uid) - parse_uid(uid, &i->uid); + if (uid) { + r = parse_uid(uid, &i->uid); + if (r < 0) + goto finish; + } - if (pid) - parse_pid(pid, &i->pid); + if (pid) { + r = parse_pid(pid, &i->pid); + if (r < 0) + goto finish; + } if (who) { cc = cunescape(who); @@ -272,7 +278,7 @@ int inhibitor_create_fifo(Inhibitor *i) { /* Create FIFO */ if (!i->fifo_path) { - r = safe_mkdir("/run/systemd/inhibit", 0755, 0, 0); + r = mkdir_safe_label("/run/systemd/inhibit", 0755, 0, 0); if (r < 0) return r; @@ -297,7 +303,7 @@ int inhibitor_create_fifo(Inhibitor *i) { zero(ev); ev.events = 0; - ev.data.u32 = FD_FIFO_BASE + i->fifo_fd; + ev.data.u32 = FD_OTHER_BASE + i->fifo_fd; if (epoll_ctl(i->manager->epoll_fd, EPOLL_CTL_ADD, i->fifo_fd, &ev) < 0) return -errno;