chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fsckd: the error code is actually returned in 'fd'
[elogind.git]
/
src
/
login
/
logind.c
diff --git
a/src/login/logind.c
b/src/login/logind.c
index d7fb1bf17001e14daf2b57bc46a27027c305cf15..e7880743a0657566c5ceea18cbb56c31ee627ff3 100644
(file)
--- a/
src/login/logind.c
+++ b/
src/login/logind.c
@@
-24,13
+24,10
@@
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
-#include <linux/vt.h>
-#include <sys/timerfd.h>
#include "sd-daemon.h"
#include "strv.h"
#include "conf-parser.h"
#include "sd-daemon.h"
#include "strv.h"
#include "conf-parser.h"
-#include "mkdir.h"
#include "bus-util.h"
#include "bus-error.h"
#include "logind.h"
#include "bus-util.h"
#include "bus-error.h"
#include "logind.h"
@@
-57,6
+54,7
@@
Manager *manager_new(void) {
m->handle_lid_switch = HANDLE_SUSPEND;
m->handle_lid_switch_docked = HANDLE_IGNORE;
m->lid_switch_ignore_inhibited = true;
m->handle_lid_switch = HANDLE_SUSPEND;
m->handle_lid_switch_docked = HANDLE_IGNORE;
m->lid_switch_ignore_inhibited = true;
+ m->holdoff_timeout_usec = 30 * USEC_PER_SEC;
m->idle_action_usec = 30 * USEC_PER_MINUTE;
m->idle_action = HANDLE_IGNORE;
m->idle_action_usec = 30 * USEC_PER_MINUTE;
m->idle_action = HANDLE_IGNORE;
@@
-290,7
+288,7
@@
static int manager_enumerate_seats(Manager *m) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_error
(
"Failed to open /run/systemd/seats: %m");
+ log_error
_errno(errno,
"Failed to open /run/systemd/seats: %m");
return -errno;
}
return -errno;
}
@@
-327,7
+325,7
@@
static int manager_enumerate_linger_users(Manager *m) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_error
(
"Failed to open /var/lib/systemd/linger/: %m");
+ log_error
_errno(errno,
"Failed to open /var/lib/systemd/linger/: %m");
return -errno;
}
return -errno;
}
@@
-363,7
+361,7
@@
static int manager_enumerate_users(Manager *m) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_error
(
"Failed to open /run/systemd/users: %m");
+ log_error
_errno(errno,
"Failed to open /run/systemd/users: %m");
return -errno;
}
return -errno;
}
@@
-404,7
+402,7
@@
static int manager_enumerate_sessions(Manager *m) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_error
(
"Failed to open /run/systemd/sessions: %m");
+ log_error
_errno(errno,
"Failed to open /run/systemd/sessions: %m");
return -errno;
}
return -errno;
}
@@
-451,7
+449,7
@@
static int manager_enumerate_inhibitors(Manager *m) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_error
(
"Failed to open /run/systemd/inhibit: %m");
+ log_error
_errno(errno,
"Failed to open /run/systemd/inhibit: %m");
return -errno;
}
return -errno;
}
@@
-568,7
+566,7
@@
static int manager_reserve_vt(Manager *m) {
/* Don't complain on VT-less systems */
if (errno != ENOENT)
/* Don't complain on VT-less systems */
if (errno != ENOENT)
- log_warning
(
"Failed to pin reserved VT: %m");
+ log_warning
_errno(errno,
"Failed to pin reserved VT: %m");
return -errno;
}
return -errno;
}
@@
-583,52
+581,36
@@
static int manager_connect_bus(Manager *m) {
assert(!m->bus);
r = sd_bus_default_system(&m->bus);
assert(!m->bus);
r = sd_bus_default_system(&m->bus);
- if (r < 0) {
- log_error_errno(r, "Failed to connect to system bus: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to connect to system bus: %m");
r = sd_bus_add_object_vtable(m->bus, NULL, "/org/freedesktop/login1", "org.freedesktop.login1.Manager", manager_vtable, m);
r = sd_bus_add_object_vtable(m->bus, NULL, "/org/freedesktop/login1", "org.freedesktop.login1.Manager", manager_vtable, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add manager object vtable: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add manager object vtable: %m");
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/login1/seat", "org.freedesktop.login1.Seat", seat_vtable, seat_object_find, m);
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/login1/seat", "org.freedesktop.login1.Seat", seat_vtable, seat_object_find, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add seat object vtable: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add seat object vtable: %m");
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/login1/seat", seat_node_enumerator, m);
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/login1/seat", seat_node_enumerator, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add seat enumerator: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add seat enumerator: %m");
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/login1/session", "org.freedesktop.login1.Session", session_vtable, session_object_find, m);
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/login1/session", "org.freedesktop.login1.Session", session_vtable, session_object_find, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add session object vtable: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add session object vtable: %m");
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/login1/session", session_node_enumerator, m);
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/login1/session", session_node_enumerator, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add session enumerator: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add session enumerator: %m");
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/login1/user", "org.freedesktop.login1.User", user_vtable, user_object_find, m);
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/login1/user", "org.freedesktop.login1.User", user_vtable, user_object_find, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add user object vtable: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add user object vtable: %m");
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/login1/user", user_node_enumerator, m);
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/login1/user", user_node_enumerator, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add user enumerator: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add user enumerator: %m");
r = sd_bus_add_match(m->bus,
NULL,
r = sd_bus_add_match(m->bus,
NULL,
@@
-638,10
+620,8
@@
static int manager_connect_bus(Manager *m) {
"member='NameOwnerChanged',"
"path='/org/freedesktop/DBus'",
match_name_owner_changed, m);
"member='NameOwnerChanged',"
"path='/org/freedesktop/DBus'",
match_name_owner_changed, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add match for NameOwnerChanged: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add match for NameOwnerChanged: %m");
r = sd_bus_add_match(m->bus,
NULL,
r = sd_bus_add_match(m->bus,
NULL,
@@
-651,10
+631,8
@@
static int manager_connect_bus(Manager *m) {
"member='JobRemoved',"
"path='/org/freedesktop/systemd1'",
match_job_removed, m);
"member='JobRemoved',"
"path='/org/freedesktop/systemd1'",
match_job_removed, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add match for JobRemoved: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add match for JobRemoved: %m");
r = sd_bus_add_match(m->bus,
NULL,
r = sd_bus_add_match(m->bus,
NULL,
@@
-664,10
+642,8
@@
static int manager_connect_bus(Manager *m) {
"member='UnitRemoved',"
"path='/org/freedesktop/systemd1'",
match_unit_removed, m);
"member='UnitRemoved',"
"path='/org/freedesktop/systemd1'",
match_unit_removed, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add match for UnitRemoved: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add match for UnitRemoved: %m");
r = sd_bus_add_match(m->bus,
NULL,
r = sd_bus_add_match(m->bus,
NULL,
@@
-676,10
+652,8
@@
static int manager_connect_bus(Manager *m) {
"interface='org.freedesktop.DBus.Properties',"
"member='PropertiesChanged'",
match_properties_changed, m);
"interface='org.freedesktop.DBus.Properties',"
"member='PropertiesChanged'",
match_properties_changed, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add match for PropertiesChanged: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add match for PropertiesChanged: %m");
r = sd_bus_add_match(m->bus,
NULL,
r = sd_bus_add_match(m->bus,
NULL,
@@
-689,10
+663,8
@@
static int manager_connect_bus(Manager *m) {
"member='Reloading',"
"path='/org/freedesktop/systemd1'",
match_reloading, m);
"member='Reloading',"
"path='/org/freedesktop/systemd1'",
match_reloading, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add match for Reloading: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add match for Reloading: %m");
r = sd_bus_call_method(
m->bus,
r = sd_bus_call_method(
m->bus,
@@
-708,16
+680,12
@@
static int manager_connect_bus(Manager *m) {
}
r = sd_bus_request_name(m->bus, "org.freedesktop.login1", 0);
}
r = sd_bus_request_name(m->bus, "org.freedesktop.login1", 0);
- if (r < 0) {
- log_error_errno(r, "Failed to register name: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to register name: %m");
r = sd_bus_attach_event(m->bus, m->event, 0);
r = sd_bus_attach_event(m->bus, m->event, 0);
- if (r < 0) {
- log_error_errno(r, "Failed to attach bus to event loop: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to attach bus to event loop: %m");
return 0;
}
return 0;
}
@@
-783,7
+751,7
@@
static int manager_connect_console(Manager *m) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_error
(
"Failed to open /sys/class/tty/tty0/active: %m");
+ log_error
_errno(errno,
"Failed to open /sys/class/tty/tty0/active: %m");
return -errno;
}
return -errno;
}
@@
-806,16
+774,12
@@
static int manager_connect_console(Manager *m) {
}
r = ignore_signals(SIGRTMIN + 1, -1);
}
r = ignore_signals(SIGRTMIN + 1, -1);
- if (r < 0) {
- log_error_errno(r, "Cannot ignore SIGRTMIN + 1: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Cannot ignore SIGRTMIN + 1: %m");
r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1);
r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1);
- if (r < 0) {
- log_error_errno(r, "Cannot block SIGRTMIN: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Cannot block SIGRTMIN: %m");
r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m);
if (r < 0)
r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m);
if (r < 0)
@@
-1016,28
+980,20
@@
static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us
CLOCK_MONOTONIC,
elapse, USEC_PER_SEC*30,
manager_dispatch_idle_action, m);
CLOCK_MONOTONIC,
elapse, USEC_PER_SEC*30,
manager_dispatch_idle_action, m);
- if (r < 0) {
- log_error_errno(r, "Failed to add idle event source: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add idle event source: %m");
r = sd_event_source_set_priority(m->idle_action_event_source, SD_EVENT_PRIORITY_IDLE+10);
r = sd_event_source_set_priority(m->idle_action_event_source, SD_EVENT_PRIORITY_IDLE+10);
- if (r < 0) {
- log_error_errno(r, "Failed to set idle event source priority: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to set idle event source priority: %m");
} else {
r = sd_event_source_set_time(m->idle_action_event_source, elapse);
} else {
r = sd_event_source_set_time(m->idle_action_event_source, elapse);
- if (r < 0) {
- log_error_errno(r, "Failed to set idle event timer: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to set idle event timer: %m");
r = sd_event_source_set_enabled(m->idle_action_event_source, SD_EVENT_ONESHOT);
r = sd_event_source_set_enabled(m->idle_action_event_source, SD_EVENT_ONESHOT);
- if (r < 0) {
- log_error_errno(r, "Failed to enable idle event timer: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to enable idle event timer: %m");
}
return 0;
}
return 0;
@@
-1061,10
+1017,8
@@
int manager_startup(Manager *m) {
/* Connect to udev */
r = manager_connect_udev(m);
/* Connect to udev */
r = manager_connect_udev(m);
- if (r < 0) {
- log_error_errno(r, "Failed to create udev watchers: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to create udev watchers: %m");
/* Connect to the bus */
r = manager_connect_bus(m);
/* Connect to the bus */
r = manager_connect_bus(m);
@@
-1073,12
+1027,10
@@
int manager_startup(Manager *m) {
/* Instantiate magic seat 0 */
r = manager_add_seat(m, "seat0", &m->seat0);
/* Instantiate magic seat 0 */
r = manager_add_seat(m, "seat0", &m->seat0);
- if (r < 0) {
- log_error_errno(r, "Failed to add seat0: %m");
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to add seat0: %m");
- r = manager_set_lid_switch_ignore(m, 0 +
IGNORE_LID_SWITCH_STARTUP_USEC
);
+ r = manager_set_lid_switch_ignore(m, 0 +
m->holdoff_timeout_usec
);
if (r < 0)
log_warning_errno(r, "Failed to set up lid switch ignore event source: %m");
if (r < 0)
log_warning_errno(r, "Failed to set up lid switch ignore event source: %m");