Add kernel and UST time namespace context
[lttng-tools.git] / src / common / config / session-config.c
index a8ea68eda42fdb92fc0177d02a6c239d6d281bd4..37c5ce383962e1b278e150a9dfac0a063998fd4e 100644 (file)
@@ -223,6 +223,7 @@ LTTNG_HIDDEN const char * const config_event_context_ipc_ns = "IPC_NS";
 LTTNG_HIDDEN const char * const config_event_context_mnt_ns = "MNT_NS";
 LTTNG_HIDDEN const char * const config_event_context_net_ns = "NET_NS";
 LTTNG_HIDDEN const char * const config_event_context_pid_ns = "PID_NS";
+LTTNG_HIDDEN const char * const config_event_context_time_ns = "TIME_NS";
 LTTNG_HIDDEN const char * const config_event_context_user_ns = "USER_NS";
 LTTNG_HIDDEN const char * const config_event_context_uts_ns = "UTS_NS";
 LTTNG_HIDDEN const char * const config_event_context_uid = "UID";
@@ -1094,6 +1095,9 @@ int get_context_type(xmlChar *context_type)
        } else if (!strcmp((char *) context_type,
                config_event_context_pid_ns)) {
                ret = LTTNG_EVENT_CONTEXT_PID_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_time_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_TIME_NS;
        } else if (!strcmp((char *) context_type,
                config_event_context_user_ns)) {
                ret = LTTNG_EVENT_CONTEXT_USER_NS;
@@ -3767,10 +3771,24 @@ int load_session_from_file(const char *path, const char *session_name,
                        xmlNextElementSibling(session_node)) {
                ret = process_session_node(session_node,
                        session_name, overwrite, overrides);
-               if (session_name && ret == 0) {
-                       /* Target session found and loaded */
-                       session_found = 1;
-                       break;
+               if (!session_name && ret) {
+                       /* Loading error occurred. */
+                       goto end;
+               } else if (session_name) {
+                       if (ret == 0) {
+                               /* Target session found and loaded */
+                               session_found = 1;
+                               break;
+                       } else if (ret == -LTTNG_ERR_NO_SESSION) {
+                               /*
+                                * Ignore this error, we are looking for a
+                                * specific session.
+                                */
+                               ret = 0;
+                       } else {
+                               /* Loading error occurred. */
+                               goto end;
+                       }
                }
        }
 end:
@@ -3778,9 +3796,6 @@ end:
        if (!ret) {
                ret = session_found ? 0 : -LTTNG_ERR_LOAD_SESSION_NOENT;
        }
-       if (ret == -LTTNG_ERR_NO_SESSION) {
-               ret = -LTTNG_ERR_LOAD_SESSION_NOENT;
-       }
        return ret;
 }
 
This page took 0.023545 seconds and 4 git commands to generate.