X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fmain.cpp;h=318af66f787526f049faef36f9c4cf1a78425c71;hb=11bcbf894cf92b99a2d885cad117db6811f164cb;hp=e1c74e358ebff36c9426cba3c2cc82a1ece4b3c8;hpb=c9e313bc594f40a86eed237dce222c0fc99c957f;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/main.cpp b/src/bin/lttng-relayd/main.cpp index e1c74e358..318af66f7 100644 --- a/src/bin/lttng-relayd/main.cpp +++ b/src/bin/lttng-relayd/main.cpp @@ -1329,7 +1329,7 @@ static void *relay_thread_dispatcher(void *data __attribute__((unused))) /* Continue thread execution */ break; } - new_conn = caa_container_of(node, struct relay_connection, qnode); + new_conn = lttng::utils::container_of(node, &relay_connection::qnode); DBG("Dispatching request waiting on sock %d", new_conn->sock->fd); @@ -2539,12 +2539,14 @@ static ssize_t relay_unpack_rotate_streams_header( * We start by "unpacking" `stream_count` to figure out the padding length * emited by our peer. */ - memcpy(&rotate_streams.stream_count, payload->data, - sizeof(rotate_streams.stream_count)); - rotate_streams = (typeof(rotate_streams)) { - .stream_count = be32toh(rotate_streams.stream_count), - .new_chunk_id = LTTNG_OPTIONAL_INIT_UNSET, - }; + { + decltype(rotate_streams.stream_count) stream_count; + + memcpy(&stream_count, payload->data, sizeof(stream_count)); + rotate_streams.stream_count = be32toh(stream_count); + } + + rotate_streams.new_chunk_id = LTTNG_OPTIONAL_INIT_UNSET; /* * Payload size expected given the possible padding lengths in @@ -2574,13 +2576,11 @@ static ssize_t relay_unpack_rotate_streams_header( memcpy(&packed_rotate_streams, payload->data, header_len); /* Unpack the packed structure to the natively-packed version. */ - *_rotate_streams = (typeof(*_rotate_streams)) { - .stream_count = be32toh(packed_rotate_streams.stream_count), - .new_chunk_id = (typeof(_rotate_streams->new_chunk_id)) { - .is_set = !!packed_rotate_streams.new_chunk_id.is_set, - .value = be64toh(packed_rotate_streams.new_chunk_id.value), - } + _rotate_streams->new_chunk_id = (typeof(_rotate_streams->new_chunk_id)){ + .is_set = !!packed_rotate_streams.new_chunk_id.is_set, + .value = be64toh(packed_rotate_streams.new_chunk_id.value), }; + _rotate_streams->stream_count = be32toh(packed_rotate_streams.stream_count); } else if (payload->size == expected_payload_size_3_bytes_padding) { struct lttcomm_relayd_rotate_streams_3_bytes_padding padded_rotate_streams; @@ -2590,13 +2590,11 @@ static ssize_t relay_unpack_rotate_streams_header( memcpy(&padded_rotate_streams, payload->data, header_len); /* Unpack the 3-byte padded structure to the natively-packed version. */ - *_rotate_streams = (typeof(*_rotate_streams)) { - .stream_count = be32toh(padded_rotate_streams.stream_count), - .new_chunk_id = (typeof(_rotate_streams->new_chunk_id)) { - .is_set = !!padded_rotate_streams.new_chunk_id.is_set, - .value = be64toh(padded_rotate_streams.new_chunk_id.value), - } + _rotate_streams->new_chunk_id = (typeof(_rotate_streams->new_chunk_id)){ + .is_set = !!padded_rotate_streams.new_chunk_id.is_set, + .value = be64toh(padded_rotate_streams.new_chunk_id.value), }; + _rotate_streams->stream_count = be32toh(padded_rotate_streams.stream_count); } else if (payload->size == expected_payload_size_7_bytes_padding) { struct lttcomm_relayd_rotate_streams_7_bytes_padding padded_rotate_streams; @@ -2606,13 +2604,11 @@ static ssize_t relay_unpack_rotate_streams_header( memcpy(&padded_rotate_streams, payload->data, header_len); /* Unpack the 7-byte padded structure to the natively-packed version. */ - *_rotate_streams = (typeof(*_rotate_streams)) { - .stream_count = be32toh(padded_rotate_streams.stream_count), - .new_chunk_id = (typeof(_rotate_streams->new_chunk_id)) { - .is_set = !!padded_rotate_streams.new_chunk_id.is_set, - .value = be64toh(padded_rotate_streams.new_chunk_id.value), - } + _rotate_streams->new_chunk_id = (typeof(_rotate_streams->new_chunk_id)){ + .is_set = !!padded_rotate_streams.new_chunk_id.is_set, + .value = be64toh(padded_rotate_streams.new_chunk_id.value), }; + _rotate_streams->stream_count = be32toh(padded_rotate_streams.stream_count); header_len = sizeof(padded_rotate_streams); } else {