chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
install: create both session/system unit dirs, even if empty
[elogind.git]
/
manager.c
diff --git
a/manager.c
b/manager.c
index a4696d6e99f7c4c9efa075f36cbe2fe1cccf5c97..4cc7d30e24ef5732df9ad60822e6c11f9869aacf 100644
(file)
--- a/
manager.c
+++ b/
manager.c
@@
-68,7
+68,7
@@
static int enable_special_signals(Manager *m) {
if (reboot(RB_DISABLE_CAD) < 0)
log_warning("Failed to enable ctrl-alt-del handling: %m");
if (reboot(RB_DISABLE_CAD) < 0)
log_warning("Failed to enable ctrl-alt-del handling: %m");
- if ((fd = open_terminal("/dev/tty0", O_RDWR)) < 0)
+ if ((fd = open_terminal("/dev/tty0", O_RDWR
|O_NOCTTY
)) < 0)
log_warning("Failed to open /dev/tty0: %m");
else {
/* Enable that we get SIGWINCH on kbrequest */
log_warning("Failed to open /dev/tty0: %m");
else {
/* Enable that we get SIGWINCH on kbrequest */
@@
-149,12
+149,12
@@
static char** session_dirs(void) {
}
if ((e = getenv("XDG_CONFIG_DIRS")))
}
if ((e = getenv("XDG_CONFIG_DIRS")))
- config_dirs = strv_split(e, ":");
- else
- config_dirs = strv_new("/etc/xdg", NULL);
+ if (!(config_dirs = strv_split(e, ":")))
+ goto fail;
- if (!config_dirs)
- goto fail;
+ /* We don't treat /etc/xdg/systemd here as the spec
+ * suggests because we assume that that is a link to
+ * /etc/systemd/ anyway. */
if ((e = getenv("XDG_DATA_HOME"))) {
if (asprintf(&data_home, "%s/systemd/session", e) < 0)
if ((e = getenv("XDG_DATA_HOME"))) {
if (asprintf(&data_home, "%s/systemd/session", e) < 0)
@@
-254,7
+254,7
@@
static int manager_find_paths(Manager *m) {
}
if (m->running_as == MANAGER_INIT) {
}
if (m->running_as == MANAGER_INIT) {
- /* /etc/init.d/ compati
v
ility does not matter to users */
+ /* /etc/init.d/ compati
b
ility does not matter to users */
if ((e = getenv("SYSTEMD_SYSVINIT_PATH")))
if (!(m->sysvinit_path = split_path_and_make_absolute(e)))
if ((e = getenv("SYSTEMD_SYSVINIT_PATH")))
if (!(m->sysvinit_path = split_path_and_make_absolute(e)))
@@
-521,6
+521,7
@@
void manager_free(Manager *m) {
assert(m);
assert(m);
+ manager_dispatch_cleanup_queue(m);
manager_clear_jobs_and_units(m);
for (c = 0; c < _UNIT_TYPE_MAX; c++)
manager_clear_jobs_and_units(m);
for (c = 0; c < _UNIT_TYPE_MAX; c++)