Fix: lttng-live data_size and version endianness
[babeltrace.git] / formats / lttng-live / lttng-live-comm.c
index d26d83eb4bbb01a9d383585d57fab2761543fb4a..492125a7b058bdfcd03d940c3d5d34d536d25885 100644 (file)
@@ -166,8 +166,8 @@ int lttng_live_establish_connection(struct lttng_live_ctx *ctx)
        }
 
        cmd.cmd = htobe32(LTTNG_VIEWER_CONNECT);
-       cmd.data_size = sizeof(connect);
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(sizeof(connect));
+       cmd.cmd_version = htobe32(0);
 
        connect.viewer_session_id = -1ULL;      /* will be set on recv */
        connect.major = htobe32(LTTNG_LIVE_MAJOR);
@@ -307,8 +307,8 @@ int lttng_live_list_sessions(struct lttng_live_ctx *ctx, const char *path)
        }
 
        cmd.cmd = htobe32(LTTNG_VIEWER_LIST_SESSIONS);
-       cmd.data_size = 0;
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(0);
+       cmd.cmd_version = htobe32(0);
 
        ret_len = lttng_live_send(ctx->control_sock, &cmd, sizeof(cmd));
        if (ret_len < 0) {
@@ -432,8 +432,8 @@ int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id)
        }
 
        cmd.cmd = htobe32(LTTNG_VIEWER_ATTACH_SESSION);
-       cmd.data_size = sizeof(rq);
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(sizeof(rq));
+       cmd.cmd_version = htobe32(0);
 
        memset(&rq, 0, sizeof(rq));
        rq.session_id = htobe64(id);
@@ -650,8 +650,8 @@ retry:
                goto end;
        }
        cmd.cmd = htobe32(LTTNG_VIEWER_GET_PACKET);
-       cmd.data_size = sizeof(rq);
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(sizeof(rq));
+       cmd.cmd_version = htobe32(0);
 
        memset(&rq, 0, sizeof(rq));
        rq.stream_id = htobe64(stream->id);
@@ -802,8 +802,8 @@ int get_one_metadata_packet(struct lttng_live_ctx *ctx,
 
        rq.stream_id = htobe64(metadata_stream->id);
        cmd.cmd = htobe32(LTTNG_VIEWER_GET_METADATA);
-       cmd.data_size = sizeof(rq);
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(sizeof(rq));
+       cmd.cmd_version = htobe32(0);
 
        ret_len = lttng_live_send(ctx->control_sock, &cmd, sizeof(cmd));
        if (ret_len < 0) {
@@ -932,8 +932,10 @@ int get_new_metadata(struct lttng_live_ctx *ctx,
                }
        } while (ret > 0 || !len_read);
 
-       if (fclose(metadata_stream->metadata_fp_write))
-               perror("fclose");
+       if (babeltrace_close_memstream(metadata_buf, &size,
+                       metadata_stream->metadata_fp_write)) {
+               perror("babeltrace_close_memstream");
+       }
        metadata_stream->metadata_fp_write = NULL;
 
 error:
@@ -975,8 +977,8 @@ int get_next_index(struct lttng_live_ctx *ctx,
        struct lttng_viewer_index *rp = &viewer_stream->current_index;
 
        cmd.cmd = htobe32(LTTNG_VIEWER_GET_NEXT_INDEX);
-       cmd.data_size = sizeof(rq);
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(sizeof(rq));
+       cmd.cmd_version = htobe32(0);
 
        memset(&rq, 0, sizeof(rq));
        rq.stream_id = htobe64(viewer_stream->id);
@@ -1118,7 +1120,7 @@ int handle_seek_position(size_t index, int whence,
                struct ctf_stream_pos *pos,
                struct ctf_file_stream *file_stream)
 {
-       int ret;
+       int ret = 0;
 
        switch (whence) {
        case SEEK_CUR:
@@ -1318,8 +1320,8 @@ int lttng_live_create_viewer_session(struct lttng_live_ctx *ctx)
        }
 
        cmd.cmd = htobe32(LTTNG_VIEWER_CREATE_SESSION);
-       cmd.data_size = 0;
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(0);
+       cmd.cmd_version = htobe32(0);
 
        ret_len = lttng_live_send(ctx->control_sock, &cmd, sizeof(cmd));
        if (ret_len < 0) {
@@ -1508,8 +1510,8 @@ int lttng_live_get_new_streams(struct lttng_live_ctx *ctx, uint64_t id)
        }
 
        cmd.cmd = htobe32(LTTNG_VIEWER_GET_NEW_STREAMS);
-       cmd.data_size = sizeof(rq);
-       cmd.cmd_version = 0;
+       cmd.data_size = htobe64(sizeof(rq));
+       cmd.cmd_version = htobe32(0);
 
        memset(&rq, 0, sizeof(rq));
        rq.session_id = htobe64(id);
This page took 0.025545 seconds and 4 git commands to generate.