[systemd-commits] src/journal

Lennart Poettering lennart at kemper.freedesktop.org
Fri Jul 19 11:00:47 PDT 2013


 src/journal/journald-server.c |   31 ++++++++++++++++---------------
 src/journal/journald-server.h |    2 +-
 2 files changed, 17 insertions(+), 16 deletions(-)

New commits:
commit 19cace379f3f680d3201cd257ab3ca6708b2d45d
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Jul 19 19:52:30 2013 +0200

    journald: after the cgroup rework processes may be in both user and system units at the same time

diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index 81de959..60c32b1 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -623,19 +623,20 @@ static void dispatch_message_real(
                         if (cg_path_get_unit(c, &t) >= 0) {
                                 x = strappenda("_SYSTEMD_UNIT=", t);
                                 free(t);
-                        } else if (cg_path_get_user_unit(c, &t) >= 0) {
+                                IOVEC_SET_STRING(iovec[n++], x);
+                        } else if (unit_id && !session) {
+                                x = strappenda("_SYSTEMD_UNIT=", unit_id);
+                                IOVEC_SET_STRING(iovec[n++], x);
+                        }
+
+                        if (cg_path_get_user_unit(c, &t) >= 0) {
                                 x = strappenda("_SYSTEMD_USER_UNIT=", t);
                                 free(t);
-                        } else if (unit_id) {
-                                if (session)
-                                        x = strappenda("_SYSTEMD_USER_UNIT=", unit_id);
-                                else
-                                        x = strappenda("_SYSTEMD_UNIT=", unit_id);
-                        } else
-                                x = NULL;
-
-                        if (x)
                                 IOVEC_SET_STRING(iovec[n++], x);
+                        } else if (unit_id && session) {
+                                x = strappenda("_SYSTEMD_USER_UNIT=", unit_id);
+                                IOVEC_SET_STRING(iovec[n++], x);
+                        }
 
                         free(c);
                 }
@@ -728,14 +729,14 @@ static void dispatch_message_real(
                         if (cg_path_get_unit(c, &t) >= 0) {
                                 x = strappenda("OBJECT_SYSTEMD_UNIT=", t);
                                 free(t);
-                        } else if (cg_path_get_user_unit(c, &t) >= 0) {
+                                IOVEC_SET_STRING(iovec[n++], x);
+                        }
+
+                        if (cg_path_get_user_unit(c, &t) >= 0) {
                                 x = strappenda("OBJECT_SYSTEMD_USER_UNIT=", t);
                                 free(t);
-                        } else
-                                x = NULL;
-
-                        if (x)
                                 IOVEC_SET_STRING(iovec[n++], x);
+                        }
 
                         free(c);
                 }
diff --git a/src/journal/journald-server.h b/src/journal/journald-server.h
index 41f32ba..9ff3300 100644
--- a/src/journal/journald-server.h
+++ b/src/journal/journald-server.h
@@ -125,7 +125,7 @@ typedef struct Server {
         bool sync_scheduled;
 } Server;
 
-#define N_IOVEC_META_FIELDS 17
+#define N_IOVEC_META_FIELDS 19
 #define N_IOVEC_KERNEL_FIELDS 64
 #define N_IOVEC_UDEV_FIELDS 32
 #define N_IOVEC_OBJECT_FIELDS 11



More information about the systemd-commits mailing list