Commit af2d49f7 authored by Lennart Poettering's avatar Lennart Poettering

drop support for MANAGER_SESSION, introduce MANAGER_USER instead

parent 62347bc2
......@@ -30,9 +30,9 @@ bashcompletiondir=$(sysconfdir)/bash_completion.d
# Our own, non-special dirs
pkgsysconfdir=$(sysconfdir)/systemd
sessionunitdir=$(pkgdatadir)/session
userunitdir=$(pkgdatadir)/user
tmpfilesdir=$(sysconfdir)/tmpfiles.d
sessiongeneratordir=$(pkglibexecdir)/session-generators
usergeneratordir=$(pkglibexecdir)/user-generators
# And these are the special ones for /
rootdir=@rootdir@
......@@ -49,9 +49,9 @@ AM_CPPFLAGS = \
-DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \
-DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \
-DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \
-DSESSION_CONFIG_FILE=\"$(pkgsysconfdir)/session.conf\" \
-DSESSION_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/session\" \
-DSESSION_DATA_UNIT_PATH=\"$(sessionunitdir)\" \
-DUSER_CONFIG_FILE=\"$(pkgsysconfdir)/user.conf\" \
-DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" \
-DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" \
-DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \
-DSYSTEMD_BINARY_PATH=\"$(rootbindir)/systemd\" \
-DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \
......@@ -61,7 +61,7 @@ AM_CPPFLAGS = \
-DRANDOM_SEED=\"$(localstatedir)/lib/random-seed\" \
-DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" \
-DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" \
-DSESSION_GENERATOR_PATH=\"$(sessiongeneratordir)\" \
-DUSER_GENERATOR_PATH=\"$(usergeneratordir)\" \
-I $(top_srcdir)/src
if TARGET_GENTOO
......@@ -268,13 +268,13 @@ nodist_systemunit_DATA = \
units/quotacheck.service \
units/rescue.service
dist_sessionunit_DATA = \
units/session/default.target \
units/session/exit.target
dist_userunit_DATA = \
units/user/default.target \
units/user/exit.target
nodist_sessionunit_DATA = \
units/session/remote-fs.target \
units/session/exit.service
nodist_userunit_DATA = \
units/user/remote-fs.target \
units/user/exit.service
EXTRA_DIST = \
units/getty@.service.m4 \
......@@ -307,7 +307,7 @@ EXTRA_DIST = \
units/poweroff.service.in \
units/reboot.service.in \
units/kexec.service.in \
units/session/exit.service.in \
units/user/exit.service.in \
units/fsck@.service.in \
units/fsck-root.service.in \
units/quotacheck.service.in \
......@@ -1008,19 +1008,19 @@ M4_PROCESS_SYSTEM = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SYSTEM=1 < $< > $@ || rm $@
M4_PROCESS_SESSION = \
M4_PROCESS_USER = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SESSION=1 < $< > $@ || rm $@
$(M4) -P $(M4_DISTRO_FLAG) -DFOR_USER=1 < $< > $@ || rm $@
units/%: units/%.m4 Makefile
$(M4_PROCESS_SYSTEM)
units/session/%: units/%.m4 Makefile
$(M4_PROCESS_SESSION)
units/user/%: units/%.m4 Makefile
$(M4_PROCESS_USER)
CLEANFILES = \
$(nodist_systemunit_DATA) \
$(nodist_sessionunit_DATA) \
$(nodist_userunit_DATA) \
$(nodist_man_MANS) \
${XML_IN_FILES:.xml.in=.html} \
$(pkgconfigdata_DATA)
......@@ -1105,7 +1105,7 @@ CLEANFILES += \
install-data-hook:
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(systemunitdir) \
$(DESTDIR)$(sessionunitdir) \
$(DESTDIR)$(userunitdir) \
$(DESTDIR)$(systemunitdir)/sysinit.target.wants \
$(DESTDIR)$(systemunitdir)/sockets.target.wants \
$(DESTDIR)$(systemunitdir)/basic.target.wants \
......@@ -1123,11 +1123,11 @@ install-data-hook:
$(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
$(DESTDIR)$(pkgsysconfdir)/session \
$(DESTDIR)$(pkgsysconfdir)/user \
$(DESTDIR)$(sysconfdir)/xdg/systemd
( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
rm -f session && \
$(LN_S) $(pkgsysconfdir)/session session )
rm -f user && \
$(LN_S) $(pkgsysconfdir)/user user )
( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
rm -f systemd-initctl.socket systemd-logger.socket systemd-shutdownd.socket syslog.socket && \
$(LN_S) ../systemd-logger.socket systemd-logger.socket && \
......@@ -1167,7 +1167,7 @@ install-data-hook:
$(LN_S) ../remount-rootfs.service remount-rootfs.service && \
$(LN_S) ../var-run.mount var-run.mount && \
$(LN_S) ../var-lock.mount var-lock.mount )
( cd $(DESTDIR)$(sessionunitdir) && \
( cd $(DESTDIR)$(userunitdir) && \
rm -f shutdown.target sockets.target local-fs.target swap.target bluetooth.target printer.target && \
$(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \
$(LN_S) $(systemunitdir)/sockets.target sockets.target && \
......
......@@ -42,8 +42,6 @@
* add systemctl switch to dump transaction without executing it
* system.conf/session.conf man page
* suspend, resume
* systemctl auto-pager a la git
......@@ -79,8 +77,6 @@
* declare /etc/os-release cross-distro standard
* rename s/session/user/g
* fix hotplug transactions
External:
......
......@@ -760,8 +760,8 @@
--variable=systemdsystemunitdir</command> (for
system services), resp. <command>pkg-config
systemd
--variable=systemdsessionunitdir</command>
(for session services). This will make the
--variable=systemduserunitdir</command>
(for user services). This will make the
services available in the system on explicit
request but not activate them automatically
during boot. Optionally, during package
......@@ -795,7 +795,7 @@ AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_sy
machines, and optionally allows their
installation even on machines lacking
systemd. (Modification of this snippet for the
session unit directory is left as excercise to the
user unit directory is left as excercise to the
reader.)</para>
<para>Additionally, to ensure that
......
......@@ -45,7 +45,7 @@
<refnamediv>
<refname>systemadm</refname>
<refpurpose>Graphical frontend for the systemd system
and session manager</refpurpose>
and service manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
......@@ -58,7 +58,7 @@
<title>Description</title>
<para><command>systemadm</command> is a graphical
frontend for the systemd system and session manager
frontend for the systemd system and service manager
and allows introspection and control of
systemd.</para>
</refsect1>
......@@ -87,10 +87,10 @@
</varlistentry>
<varlistentry>
<term><option>--session</option></term>
<term><option>--user</option></term>
<listitem><para>Connect to the systemd
session manager of the calling
manager of the calling
user.</para></listitem>
</varlistentry>
......
......@@ -44,7 +44,7 @@
<refnamediv>
<refname>systemctl</refname>
<refpurpose>Control the systemd system and session manager</refpurpose>
<refpurpose>Control the systemd system and service manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
......@@ -59,7 +59,7 @@
<para><command>systemctl</command> may be used to
introspect and control the state of the
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
system and session manager.</para>
system and service manager.</para>
</refsect1>
<refsect1>
......@@ -178,10 +178,10 @@
</varlistentry>
<varlistentry>
<term><option>--session</option></term>
<term><option>--user</option></term>
<listitem><para>Talk to the systemd
session manager of the calling user.</para></listitem>
manager of the calling user.</para></listitem>
</varlistentry>
<varlistentry>
......@@ -224,10 +224,10 @@
<listitem><para>When used with
<command>enable</command> and
<command>disable</command>, operate on the
global session configuŕation
global user configuŕation
directory, thus enabling or disabling
a unit file globally for all future
sessions of all users.</para></listitem>
logins of all users.</para></listitem>
</varlistentry>
<varlistentry>
......@@ -598,11 +598,11 @@
<para>Depending on whether
<option>--system</option>,
<option>--session</option> or
<option>--user</option> or
<option>--global</option> is specified
this enables the unit for the system,
for sessions of the calling user only
or for all future session of all
for the calling user only
or for all future logins of all
users. Note that in the latter case no
systemd daemon configuration is
reloaded.</para>
......@@ -643,7 +643,7 @@
<para>This command honours
<option>--system</option>,
<option>--session</option>,
<option>--user</option>,
<option>--global</option> in a similar
way as
<command>enable</command>.</para>
......@@ -942,9 +942,9 @@
<listitem><para>Ask the systemd
manager to quit. This is only
supported for session managers
supported for user service managers
(i.e. in conjunction with the
<option>--session</option> option) and
<option>--user</option> option) and
will fail otherwise.</para></listitem>
</varlistentry>
</variablelist>
......
......@@ -49,7 +49,7 @@
<refsynopsisdiv>
<para><filename>system.conf</filename></para>
<para><filename>session.conf</filename></para>
<para><filename>user.conf</filename></para>
</refsynopsisdiv>
<refsect1>
......@@ -57,7 +57,7 @@
<para>When run as system instance systemd reads the
configuration file <filename>system.conf</filename>,
otherwise <filename>session.conf</filename>. These
otherwise <filename>user.conf</filename>. These
configuration files contain a few settings controlling
basic manager operations.</para>
......@@ -79,6 +79,7 @@
<term><varname>DumpCore=yes</varname></term>
<term><varname>CrashShell=no</varname></term>
<term><varname>ShowStatus=yes</varname></term>
<term><varname>SysVConsole=yes</varname></term>
<term><varname>CrashChVT=1</varname></term>
<listitem><para>Configures various
......@@ -99,6 +100,18 @@
process. Takes a space-separated list
of CPU indexes.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>MountAuto=yes</varname></term>
<term><varname>SwapAuto=yes</varname></term>
<listitem><para>Configures whether
systemd should automatically activate
all swap or mounts listed in
<filename>/etc/fstab</filename>, or
whether this job is left to some other
system script.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
......
......@@ -698,9 +698,9 @@
</refsect1>
<refsect1>
<title>Special Session Units</title>
<title>Special User Units</title>
<para>When systemd runs as a service instance, the
<para>When systemd runs as a user instance, the
following special units are available, which have
similar definitions as their system counterparts:
<filename>default.target</filename>,
......@@ -719,22 +719,22 @@
<listitem>
<para>A special service unit
for shutting down the
session.</para>
user service manager.</para>
<para>Applications wanting to
terminate the session should
start this unit. If systemd
receives SIGTERM or SIGINT
when running as session daemon
it will start this
unit.</para>
terminate the user service
manager should start this
unit. If systemd receives
SIGTERM or SIGINT when running
as user service daemon it will
start this unit.</para>
<para>Normally, this pulls in
<filename>shutdown.target</filename>
which in turn should be
conflicted by all units that
want to be shut down on
session exit.</para>
user service manager exit.</para>
</listitem>
</varlistentry>
</variablelist>
......
......@@ -45,7 +45,7 @@
<refnamediv>
<refname>systemd</refname>
<refname>init</refname>
<refpurpose>systemd System and Session Manager</refpurpose>
<refpurpose>systemd System and Service Manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
......@@ -60,7 +60,7 @@
<refsect1>
<title>Description</title>
<para>systemd is a system and session manager for
<para>systemd is a system and service manager for
Linux operating systems. When run as first process on
boot (as PID 1), it acts as init system that brings
up and maintains userspace services.</para>
......@@ -77,7 +77,7 @@
<para>When run as system instance, systemd interprets
the configuration file
<filename>system.conf</filename>, otherwise
<filename>session.conf</filename>. See
<filename>user.conf</filename>. See
<citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information.</para>
</refsect1>
......@@ -136,10 +136,10 @@
</varlistentry>
<varlistentry>
<term><option>--system</option></term>
<term><option>--session</option></term>
<term><option>--user</option></term>
<listitem><para>Tell systemd to run a
system instance (resp. session
system instance (resp. user
instance), even if the process ID is
not 1 (resp. is 1), i.e. systemd is
not (resp. is) run as init process.
......@@ -159,27 +159,36 @@
<varlistentry>
<term><option>--dump-core</option></term>
<listitem><para>Dump core on crash. This switch has no effect when run as session instance.</para></listitem>
<listitem><para>Dump core on
crash. This switch has no effect when
run as user
instance.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--crash-shell</option></term>
<listitem><para>Run shell on crash. This switch has no effect when run as session instance.</para></listitem>
<listitem><para>Run shell on
crash. This switch has no effect when
run as user
instance.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--confirm-spawn</option></term>
<listitem><para>Ask for confirmation when spawning processes. This switch has no effect when run as session instance.</para></listitem>
<listitem><para>Ask for confirmation
when spawning processes. This switch
has no effect when run as user
instance.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--show-status=</option></term>
<listitem><para>Show terse service
status information while booting. This
switch has no effect when run as
session instance. Takes a boolean
argument which may be omitted
which is interpreted as
switch has no effect when run as user
instance. Takes a boolean argument
which may be omitted which is
interpreted as
<option>true</option>.</para></listitem>
</varlistentry>
<varlistentry>
......@@ -188,7 +197,7 @@
<listitem><para>Controls whether
output of SysV init scripts will be
directed to the console. This switch
has no effect when run as session
has no effect when run as user
instance. Takes a boolean argument
which may be omitted which is
interpreted as
......@@ -489,10 +498,10 @@
<variablelist>
<varlistentry>
<term>Session unit directories</term>
<term>User unit directories</term>
<listitem><para>Similar rules apply
for the session unit
for the user unit
directories. However, here the <ulink
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
Base Directory specification</ulink>
......@@ -500,11 +509,11 @@
units. Applications should place their
unit files in the directory returned
by <command>pkg-config systemd
--variable=systemdsessionunitdir</command>. Global
--variable=systemduserunitdir</command>. Global
configuration is done in the directory
reported by <command>pkg-config
systemd
--variable=systemdsessionconfdir</command>. The
--variable=systemduserconfdir</command>. The
<command>enable</command> and
<command>disable</command> commands of
the
......@@ -565,12 +574,12 @@
to <command>systemctl
daemon-reexec</command>.</para>
<para>systemd session managers will
<para>systemd user managers will
start the
<filename>exit.target</filename> unit
when this signal is received. This is
mostly equivalent to
<command>systemctl --session start
<command>systemctl --user start
exit.target</command>.</para></listitem>
</varlistentry>
......@@ -585,7 +594,7 @@
<command>systemctl start
ctl-alt-del.target</command>.</para>
<para>systemd session managers
<para>systemd user managers
treat this signal the same way as
SIGTERM.</para></listitem>
</varlistentry>
......@@ -602,7 +611,7 @@
kbrequest.target</command>.</para>
<para>This signal is ignored by
systemd session
systemd user
managers.</para></listitem>
</varlistentry>
......@@ -757,7 +766,7 @@
<term><varname>$XDG_DATA_HOME</varname></term>
<term><varname>$XDG_DATA_DIRS</varname></term>
<listitem><para>The systemd session
<listitem><para>The systemd user
manager uses these variables in
accordance to the <ulink
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
......
......@@ -854,7 +854,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
} else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Manager", "Exit")) {
if (m->running_as == MANAGER_SYSTEM) {
dbus_set_error(&error, BUS_ERROR_NOT_SUPPORTED, "Exit is only supported for session managers.");
dbus_set_error(&error, BUS_ERROR_NOT_SUPPORTED, "Exit is only supported for user service managers.");
return bus_send_error_reply(m, connection, message, &error, -ENOTSUP);
}
......
......@@ -864,7 +864,7 @@ static int bus_init_api(Manager *m) {
if (m->running_as == MANAGER_SYSTEM && m->system_bus)
m->api_bus = m->system_bus;
else {
if (!(m->api_bus = dbus_bus_get_private(m->running_as == MANAGER_SESSION ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &error))) {
if (!(m->api_bus = dbus_bus_get_private(m->running_as == MANAGER_USER ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &error))) {
log_debug("Failed to get API D-Bus connection, retrying later: %s", error.message);
r = 0;
goto fail;
......
......@@ -514,7 +514,7 @@ static int parse_config_file(void) {
const char *fn;
int r;
fn = arg_running_as == MANAGER_SYSTEM ? SYSTEM_CONFIG_FILE : SESSION_CONFIG_FILE;
fn = arg_running_as == MANAGER_SYSTEM ? SYSTEM_CONFIG_FILE : USER_CONFIG_FILE;
if (!(f = fopen(fn, "re"))) {
if (errno == ENOENT)
......@@ -573,7 +573,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_LOG_LOCATION,
ARG_UNIT,
ARG_SYSTEM,
ARG_SESSION,
ARG_USER,
ARG_TEST,
ARG_DUMP_CONFIGURATION_ITEMS,
ARG_DUMP_CORE,
......@@ -592,7 +592,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "log-location", optional_argument, NULL, ARG_LOG_LOCATION },
{ "unit", required_argument, NULL, ARG_UNIT },
{ "system", no_argument, NULL, ARG_SYSTEM },
{ "session", no_argument, NULL, ARG_SESSION },
{ "user", no_argument, NULL, ARG_USER },
{ "test", no_argument, NULL, ARG_TEST },
{ "help", no_argument, NULL, 'h' },
{ "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS },
......@@ -671,8 +671,8 @@ static int parse_argv(int argc, char *argv[]) {
arg_running_as = MANAGER_SYSTEM;
break;
case ARG_SESSION:
arg_running_as = MANAGER_SESSION;
case ARG_USER:
arg_running_as = MANAGER_USER;
break;
case ARG_TEST:
......@@ -794,14 +794,14 @@ static int parse_argv(int argc, char *argv[]) {
static int help(void) {
printf("%s [OPTIONS...]\n\n"
"Starts up and maintains the system or a session.\n\n"
"Starts up and maintains the system or user services.\n\n"
" -h --help Show this help\n"
" --test Determine startup sequence, dump it and exit\n"
" --dump-configuration-items Dump understood unit configuration items\n"
" --introspect[=INTERFACE] Extract D-Bus interface data\n"
" --unit=UNIT Set default unit\n"
" --system Run a system instance, even if PID != 1\n"
" --session Run a session instance\n"
" --user Run a user instance\n"
" --dump-core Dump core on crash\n"
" --crash-shell Run shell on crash\n"
" --confirm-spawn Ask for confirmation when spawning processes\n"
......@@ -951,7 +951,7 @@ int main(int argc, char *argv[]) {
if (label_init() < 0)
goto finish;
} else {
arg_running_as = MANAGER_SESSION;
arg_running_as = MANAGER_USER;
log_set_target(LOG_TARGET_CONSOLE);
}
......@@ -1235,7 +1235,7 @@ finish:
if (arg_running_as == MANAGER_SYSTEM)
args[i++] = "--system";
else
args[i++] = "--session";
args[i++] = "--user";
if (arg_dump_core)
args[i++] = "--dump-core";
......
......@@ -2015,7 +2015,7 @@ static int manager_start_target(Manager *m, const char *name, JobMode mode) {
dbus_error_init(&error);
log_info("Activating special unit %s", name);
log_debug("Activating special unit %s", name);
if ((r = manager_add_job_by_name(m, JOB_START, name, mode, true, &error, NULL)) < 0)
log_error("Failed to enqueue %s job: %s", name, bus_error(&error, r));
......@@ -2839,7 +2839,7 @@ void manager_run_generators(Manager *m) {
assert(m);
generator_path = m->running_as == MANAGER_SYSTEM ? SYSTEM_GENERATOR_PATH : SESSION_GENERATOR_PATH;
generator_path = m->running_as == MANAGER_SYSTEM ? SYSTEM_GENERATOR_PATH : USER_GENERATOR_PATH;
if (!(d = opendir(generator_path))) {
if (errno == ENOENT)
......@@ -2852,9 +2852,9 @@ void manager_run_generators(Manager *m) {
if (!m->generator_unit_path) {
char *p;
char system_path[] = "/dev/.systemd/generator-XXXXXX",
session_path[] = "/tmp/systemd-generator-XXXXXX";
user_path[] = "/tmp/systemd-generator-XXXXXX";
if (!(p = mkdtemp(m->running_as == MANAGER_SYSTEM ? system_path : session_path))) {
if (!(p = mkdtemp(m->running_as == MANAGER_SYSTEM ? system_path : user_path))) {
log_error("Failed to generate generator directory: %m");
goto finish;
}
......@@ -2990,7 +2990,7 @@ void manager_undo_generators(Manager *m) {
static const char* const manager_running_as_table[_MANAGER_RUNNING_AS_MAX] = {
[MANAGER_SYSTEM] = "system",
[MANAGER_SESSION] = "session"
[MANAGER_USER] = "user"
};
DEFINE_STRING_TABLE_LOOKUP(manager_running_as, ManagerRunningAs);
......@@ -51,7 +51,7 @@ typedef enum ManagerExitCode {
typedef enum ManagerRunningAs {
MANAGER_SYSTEM,
MANAGER_SESSION,
MANAGER_USER,
_MANAGER_RUNNING_AS_MAX,
_MANAGER_RUNNING_AS_INVALID = -1
} ManagerRunningAs;
......
......@@ -30,11 +30,11 @@
#include "path-lookup.h"
int session_config_home(char **config_home) {
int user_config_home(char **config_home) {
const char *e;
if ((e = getenv("XDG_CONFIG_HOME"))) {
if (asprintf(config_home, "%s/systemd/session", e) < 0)
if (asprintf(config_home, "%s/systemd/user", e) < 0)
return -ENOMEM;
return 1;
......@@ -42,7 +42,7 @@ int session_config_home(char **config_home) {
const char *home;
if ((home = getenv("HOME"))) {
if (asprintf(config_home, "%s/.config/systemd/session", home) < 0)
if (asprintf(config_home, "%s/.config/systemd/user", home) < 0)
return -ENOMEM;
return 1;
......@@ -52,7 +52,7 @@ int session_config_home(char **config_home) {
return 0;
}
static char** session_dirs(void) {