X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Frelayd%2Frelayd.c;h=08bbad23bc89a15339496ff62ab944c1a699b1bc;hb=fb9a95c4d6242bd8336b638c90a7d8f846125659;hp=53ee58b2edcdc89464ceae7d610702e7ff0f4085;hpb=2f21a469eee9bc3352b439b1e64fe6bbd5088fea;p=lttng-tools.git diff --git a/src/common/relayd/relayd.c b/src/common/relayd/relayd.c index 53ee58b2e..08bbad23b 100644 --- a/src/common/relayd/relayd.c +++ b/src/common/relayd/relayd.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -125,8 +126,9 @@ error: * payload size is introduced. */ static int relayd_create_session_2_11(struct lttcomm_relayd_sock *rsock, - char *session_name, char *hostname, - int session_live_timer, unsigned int snapshot) + const char *session_name, const char *hostname, + int session_live_timer, unsigned int snapshot, + uint64_t sessiond_session_id, const lttng_uuid sessiond_uuid) { int ret; struct lttcomm_relayd_create_session_2_11 *msg = NULL; @@ -164,6 +166,9 @@ static int relayd_create_session_2_11(struct lttcomm_relayd_sock *rsock, msg->live_timer = htobe32(session_live_timer); msg->snapshot = !!snapshot; + lttng_uuid_copy(msg->sessiond_uuid, sessiond_uuid); + msg->session_id = htobe64(sessiond_session_id); + /* Send command */ ret = send_command(rsock, RELAYD_CREATE_SESSION, msg, msg_length, 0); if (ret < 0) { @@ -178,8 +183,8 @@ error: * support the live reading capability. */ static int relayd_create_session_2_4(struct lttcomm_relayd_sock *rsock, - char *session_name, char *hostname, int session_live_timer, - unsigned int snapshot) + const char *session_name, const char *hostname, + int session_live_timer, unsigned int snapshot) { int ret; struct lttcomm_relayd_create_session_2_4 msg; @@ -230,15 +235,18 @@ error: * On success, return 0 else a negative value which is either an errno error or * a lttng error code from the relayd. */ -int relayd_create_session(struct lttcomm_relayd_sock *rsock, uint64_t *session_id, - char *session_name, char *hostname, int session_live_timer, - unsigned int snapshot) +int relayd_create_session(struct lttcomm_relayd_sock *rsock, + uint64_t *relayd_session_id, + const char *session_name, const char *hostname, + int session_live_timer, + unsigned int snapshot, uint64_t sessiond_session_id, + const lttng_uuid sessiond_uuid) { int ret; struct lttcomm_relayd_status_session reply; assert(rsock); - assert(session_id); + assert(relayd_session_id); DBG("Relayd create session"); @@ -252,7 +260,8 @@ int relayd_create_session(struct lttcomm_relayd_sock *rsock, uint64_t *session_i } else { /* From 2.11 to ... */ ret = relayd_create_session_2_11(rsock, session_name, - hostname, session_live_timer, snapshot); + hostname, session_live_timer, snapshot, + sessiond_session_id, sessiond_uuid); } if (ret < 0) { @@ -275,7 +284,7 @@ int relayd_create_session(struct lttcomm_relayd_sock *rsock, uint64_t *session_i goto error; } else { ret = 0; - *session_id = reply.session_id; + *relayd_session_id = reply.session_id; } DBG("Relayd session created with id %" PRIu64, reply.session_id); @@ -348,7 +357,8 @@ error: static int relayd_add_stream_2_11(struct lttcomm_relayd_sock *rsock, const char *channel_name, const char *pathname, - uint64_t tracefile_size, uint64_t tracefile_count) + uint64_t tracefile_size, uint64_t tracefile_count, + uint64_t trace_archive_id) { int ret; struct lttcomm_relayd_add_stream_2_11 *msg = NULL; @@ -385,6 +395,7 @@ static int relayd_add_stream_2_11(struct lttcomm_relayd_sock *rsock, msg->tracefile_size = htobe64(tracefile_size); msg->tracefile_count = htobe64(tracefile_count); + msg->trace_archive_id = htobe64(trace_archive_id); /* Send command */ ret = send_command(rsock, RELAYD_ADD_STREAM, (void *) msg, msg_length, 0); @@ -404,7 +415,8 @@ error: */ int relayd_add_stream(struct lttcomm_relayd_sock *rsock, const char *channel_name, const char *pathname, uint64_t *stream_id, - uint64_t tracefile_size, uint64_t tracefile_count) + uint64_t tracefile_size, uint64_t tracefile_count, + uint64_t trace_archive_id) { int ret; struct lttcomm_relayd_status_stream reply; @@ -428,7 +440,8 @@ int relayd_add_stream(struct lttcomm_relayd_sock *rsock, const char *channel_nam } else { /* From 2.11 to ...*/ ret = relayd_add_stream_2_11(rsock, channel_name, pathname, - tracefile_size, tracefile_count); + tracefile_size, tracefile_count, + trace_archive_id); } if (ret) { @@ -1101,7 +1114,7 @@ int relayd_rotate_stream(struct lttcomm_relayd_sock *rsock, uint64_t stream_id, DBG("Sending rotate stream id %" PRIu64 " command to relayd", stream_id); /* Account for the trailing NULL. */ - len = strnlen(new_pathname, LTTNG_PATH_MAX) + 1; + len = lttng_strnlen(new_pathname, LTTNG_PATH_MAX) + 1; if (len > LTTNG_PATH_MAX) { ERR("Path used in relayd rotate stream command exceeds the maximal allowed length"); ret = -1;