[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