Fix: protocol mismatch between UST and tools
[lttng-tools.git] / src / bin / lttng-sessiond / ust-metadata.c
index 851fb99f4fed9679a7c609066c119a8bbb70991b..d24df194342f144ebd2bbee832c6b7b5de69595b 100644 (file)
@@ -262,6 +262,7 @@ int ust_metadata_enum_statedump(struct ust_registry_session *session,
        if (ret) {
                goto end;
        }
+       nesting++;
        /* Dump all entries */
        for (i = 0; i < nr_entries; i++) {
                const struct ustctl_enum_entry *entry = &entries[i];
@@ -299,40 +300,56 @@ int ust_metadata_enum_statedump(struct ust_registry_session *session,
                                goto end;
                        }
                }
-               ret = lttng_metadata_printf(session,
-                               "\" = ");
+               ret = lttng_metadata_printf(session, "\"");
                if (ret) {
                        goto end;
                }
 
-               if (entry->start.signedness) {
-                       ret = lttng_metadata_printf(session,
-                               "%lld", (long long) entry->start.value);
+               if (entry->u.extra.options &
+                               USTCTL_UST_ENUM_ENTRY_OPTION_IS_AUTO) {
+                       ret = lttng_metadata_printf(session, ",\n");
+                       if (ret) {
+                               goto end;
+                       }
                } else {
                        ret = lttng_metadata_printf(session,
-                               "%llu", entry->start.value);
-               }
-               if (ret) {
-                       goto end;
-               }
+                                       " = ");
+                       if (ret) {
+                               goto end;
+                       }
 
-               if (entry->start.signedness == entry->end.signedness &&
-                               entry->start.value == entry->end.value) {
-                       ret = lttng_metadata_printf(session,
-                               ",\n");
-               } else {
-                       if (entry->end.signedness) {
+                       if (entry->start.signedness) {
                                ret = lttng_metadata_printf(session,
-                                       " ... %lld,\n", (long long) entry->end.value);
+                                       "%lld", (long long) entry->start.value);
                        } else {
                                ret = lttng_metadata_printf(session,
-                                       " ... %llu,\n", entry->end.value);
+                                       "%llu", entry->start.value);
+                       }
+                       if (ret) {
+                               goto end;
+                       }
+
+                       if (entry->start.signedness == entry->end.signedness &&
+                                       entry->start.value ==
+                                               entry->end.value) {
+                               ret = lttng_metadata_printf(session, ",\n");
+                       } else {
+                               if (entry->end.signedness) {
+                                       ret = lttng_metadata_printf(session,
+                                               " ... %lld,\n",
+                                               (long long) entry->end.value);
+                               } else {
+                                       ret = lttng_metadata_printf(session,
+                                               " ... %llu,\n",
+                                               entry->end.value);
+                               }
+                       }
+                       if (ret) {
+                               goto end;
                        }
-               }
-               if (ret) {
-                       goto end;
                }
        }
+       nesting--;
        sanitize_ctf_identifier(identifier, field_name);
        ret = print_tabs(session, nesting);
        if (ret) {
This page took 0.025084 seconds and 5 git commands to generate.