Add warning for missing /* TSDL header
[babeltrace.git] / formats / ctf / ctf.c
index d685b6cd70f4b9ef9362747bb7fa8862a430f086..021abf88891c6c0ff7dc62beedde1444a162f061 100644 (file)
@@ -458,12 +458,13 @@ int packet_metadata(struct ctf_trace *td, FILE *fp)
        if (magic == TSDL_MAGIC) {
                ret = 1;
                td->byte_order = BYTE_ORDER;
+               CTF_TRACE_SET_FIELD(td, byte_order);
        } else if (magic == GUINT32_SWAP_LE_BE(TSDL_MAGIC)) {
                ret = 1;
                td->byte_order = (BYTE_ORDER == BIG_ENDIAN) ?
                                        LITTLE_ENDIAN : BIG_ENDIAN;
+               CTF_TRACE_SET_FIELD(td, byte_order);
        }
-       CTF_TRACE_SET_FIELD(td, byte_order);
 end:
        rewind(fp);
        return ret;
@@ -612,7 +613,17 @@ int ctf_open_trace_metadata_read(struct ctf_trace *td)
                if (ret)
                        goto end_packet_read;
        } else {
+               char buf[sizeof("/* TSDL")];    /* Includes \0 */
+               ssize_t readlen;
+
                td->byte_order = BYTE_ORDER;
+
+               /* Check text-only metadata header */
+               buf[sizeof("/* TSDL") - 1] = '\0';
+               readlen = fread(buf, sizeof("/* TSDL") - 1, 1, fp);
+               if (readlen < 1 || strcmp(buf, "/* TSDL") != 0)
+                       fprintf(stdout, "[warning] Missing \"/* TSDL\" header for text-only metadata.\n");
+               rewind(fp);
        }
 
        scanner = ctf_scanner_alloc(fp);
This page took 0.02292 seconds and 4 git commands to generate.