[systemd-devel] [PATCH 3/7] Preparations for session mode
Hristo Venev
hristo at venev.name
Sun Dec 1 11:25:54 PST 2013
Replace the conditions of some ifs that make no difference now but are
the correct behavior if session mode is added
---
src/core/dbus.c | 2 +-
src/core/main.c | 4 ++--
src/core/manager.c | 2 +-
src/core/service.c | 2 +-
src/core/unit.c | 2 +-
src/shared/path-lookup.c | 2 +-
src/systemctl/systemctl.c | 2 +-
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/core/dbus.c b/src/core/dbus.c
index 7d7c6cb..ef9a64b 100644
--- a/src/core/dbus.c
+++ b/src/core/dbus.c
@@ -969,7 +969,7 @@ static int bus_init_private(Manager *m) {
strcpy(sa.un.sun_path, "/run/systemd/private");
salen = offsetof(union sockaddr_union, un.sun_path) + sizeof("/run/systemd/private") - 1;
- } else {
+ } else if (m->running_as == SYSTEMD_USER) {
size_t left = sizeof(sa.un.sun_path);
char *p = sa.un.sun_path;
const char *e;
diff --git a/src/core/main.c b/src/core/main.c
index 6c3d9bf..ce5b64c 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1392,7 +1392,7 @@ int main(int argc, char *argv[]) {
goto finish;
}
- if (arg_running_as == SYSTEMD_USER &&
+ if (arg_running_as != SYSTEMD_SYSTEM &&
arg_action == ACTION_RUN &&
sd_booted() <= 0) {
log_error("Trying to run as user instance, but the system has not been booted with systemd.");
@@ -1519,7 +1519,7 @@ int main(int argc, char *argv[]) {
}
}
- if (arg_running_as == SYSTEMD_USER) {
+ if (arg_running_as != SYSTEMD_SYSTEM) {
/* Become reaper of our children */
if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0) {
log_warning("Failed to make us a subreaper: %m");
diff --git a/src/core/manager.c b/src/core/manager.c
index badf19e..ada62d0 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1597,7 +1597,7 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t
break;
case 24:
- if (m->running_as == SYSTEMD_USER) {
+ if (m->running_as != SYSTEMD_SYSTEM) {
m->exit_code = MANAGER_EXIT;
return 0;
}
diff --git a/src/core/service.c b/src/core/service.c
index fcfeda7..76de567 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1145,7 +1145,7 @@ static int service_add_default_dependencies(Service *s) {
if (r < 0)
return r;
- } else if (UNIT(s)->manager->running_as == SYSTEMD_USER) {
+ } else {
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
SPECIAL_SOCKETS_TARGET, NULL, true);
if (r < 0)
diff --git a/src/core/unit.c b/src/core/unit.c
index 31d5f11..69e701c 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -2653,7 +2653,7 @@ int unit_exec_context_defaults(Unit *u, ExecContext *c) {
return -ENOMEM;
}
- if (u->manager->running_as == SYSTEMD_USER &&
+ if (u->manager->running_as != SYSTEMD_SYSTEM &&
!c->working_directory) {
r = get_home_dir(&c->working_directory);
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
index 1a47ea9..be605ca 100644
--- a/src/shared/path-lookup.c
+++ b/src/shared/path-lookup.c
@@ -293,7 +293,7 @@ int lookup_paths_init(
if (!p->unit_path)
return -ENOMEM;
- } else {
+ } else if (running_as == SYSTEMD_SYSTEM) {
p->unit_path = strv_new(
/* If you modify this you also want to modify
* systemdsystemunitpath= in systemd.pc.in! */
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index a6f95d6..edc3cb6 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -6155,7 +6155,7 @@ int main(int argc, char*argv[]) {
}
if (!avoid_bus())
- r = bus_open_transport_systemd(arg_transport, arg_host, arg_scope != UNIT_FILE_SYSTEM, &bus);
+ r = bus_open_transport_systemd(arg_transport, arg_host, arg_as, &bus);
/* systemctl_main() will print an error message for the bus
* connection, but only if it needs to */
--
1.8.4.4
More information about the systemd-devel
mailing list