Fix: procname context semantic
[lttng-ust.git] / liblttng-ust / ltt-events.c
index 2bc5a1597b3ed15812a543f78c60ddcaad7263ec..7a7fd7efc07ba54b5baca467f3c82e6d0c23bf2c 100644 (file)
@@ -246,9 +246,10 @@ int pending_probe_fix_events(const struct lttng_event_desc *desc)
 
                                memcpy(&event_param, &sw->event_param,
                                                sizeof(event_param));
-                               memcpy(event_param.name,
+                               strncpy(event_param.name,
                                        desc->name,
                                        sizeof(event_param.name));
+                               event_param.name[sizeof(event_param.name) - 1] = '\0';
                                /* create event */
                                ret = ltt_event_create(sw->chan,
                                        &event_param, &ev);
@@ -726,7 +727,7 @@ int _ltt_field_statedump(struct ltt_session *session,
 {
        int ret = 0;
 
-       if (!field->written)
+       if (field->nowrite)
                return 0;
 
        switch (field->type.atype) {
@@ -930,6 +931,14 @@ int _ltt_event_metadata_statedump(struct ltt_session *session,
        if (ret)
                goto end;
 
+       if (event->desc->u.ext.model_emf_uri) {
+               ret = lttng_metadata_printf(session,
+                       "       model.emf.uri = \"%s\";\n",
+                       *(event->desc->u.ext.model_emf_uri));
+               if (ret)
+                       goto end;
+       }
+
        if (event->ctx) {
                ret = lttng_metadata_printf(session,
                        "       context := struct {\n");
@@ -1026,9 +1035,9 @@ int _ltt_stream_packet_context_declare(struct ltt_session *session)
                "struct packet_context {\n"
                "       uint64_clock_monotonic_t timestamp_begin;\n"
                "       uint64_clock_monotonic_t timestamp_end;\n"
+               "       uint64_t content_size;\n"
+               "       uint64_t packet_size;\n"
                "       unsigned long events_discarded;\n"
-               "       uint32_t content_size;\n"
-               "       uint32_t packet_size;\n"
                "       uint32_t cpu_id;\n"
                "};\n\n"
                );
@@ -1115,6 +1124,7 @@ int _ltt_session_metadata_statedump(struct ltt_session *session)
        struct ltt_event *event;
        int ret = 0;
        char procname[LTTNG_UST_PROCNAME_LEN] = "";
+       char hostname[HOST_NAME_MAX];
 
        if (!CMM_ACCESS_ONCE(session->active))
                return 0;
@@ -1171,10 +1181,15 @@ int _ltt_session_metadata_statedump(struct ltt_session *session)
                goto end;
 
        /* ignore error, just use empty string if error. */
+       hostname[0] = '\0';
+       ret = gethostname(hostname, sizeof(hostname));
+       if (ret && errno == ENAMETOOLONG)
+               hostname[HOST_NAME_MAX - 1] = '\0';
        lttng_ust_getprocname(procname);
        procname[LTTNG_UST_PROCNAME_LEN - 1] = '\0';
        ret = lttng_metadata_printf(session,
                "env {\n"
+               "       hostname = \"%s\";\n"
                "       vpid = %d;\n"
                "       procname = \"%s\";\n"
                "       domain = \"ust\";\n"
@@ -1183,6 +1198,7 @@ int _ltt_session_metadata_statedump(struct ltt_session *session)
                "       tracer_minor = %u;\n"
                "       tracer_patchlevel = %u;\n"
                "};\n\n",
+               hostname,
                (int) getpid(),
                procname,
                LTTNG_UST_MAJOR_VERSION,
This page took 0.027124 seconds and 4 git commands to generate.