Store the relay protocol version in the consumer_output
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index 38db11ebb210eda8113c563d41ae8256b9e9c317..1ee0c98f99dadc3516714409aa20164f44f552ff 100644 (file)
@@ -590,7 +590,7 @@ static int list_lttng_kernel_events(char *channel_name,
        if (nb_event == 0) {
                *total_size = 0;
                *events = NULL;
-               goto syscall;
+               goto end;
        }
 
        /* Compute required extended infos size */
@@ -606,7 +606,7 @@ static int list_lttng_kernel_events(char *channel_name,
                goto error;
        }
 
-       extended_at = ((uint8_t *) events) +
+       extended_at = ((void *) *events) +
                nb_event * sizeof(struct lttng_event);
 
        /* Kernel channels */
@@ -653,19 +653,7 @@ static int list_lttng_kernel_events(char *channel_name,
                        &extended_at);
        }
 
-syscall:
-       if (syscall_table) {
-               ssize_t new_size;
-
-               new_size = syscall_list_channel(kchan, events, nb_event);
-               if (new_size < 0) {
-                       free(events);
-                       ret = -new_size;
-                       goto error;
-               }
-               nb_event = new_size;
-       }
-
+end:
        return nb_event;
 
 error:
@@ -815,7 +803,8 @@ error:
  * Else, it's stays untouched and a lttcomm error code is returned.
  */
 static int create_connect_relayd(struct lttng_uri *uri,
-               struct lttcomm_relayd_sock **relayd_sock)
+               struct lttcomm_relayd_sock **relayd_sock,
+               struct consumer_output *consumer)
 {
        int ret;
        struct lttcomm_relayd_sock *rsock;
@@ -851,6 +840,8 @@ static int create_connect_relayd(struct lttng_uri *uri,
                        ret = LTTNG_ERR_RELAYD_VERSION_FAIL;
                        goto close_sock;
                }
+               consumer->relay_major_version = rsock->major;
+               consumer->relay_minor_version = rsock->minor;
        } else if (uri->stype == LTTNG_STREAM_DATA) {
                DBG3("Creating relayd data socket from URI");
        } else {
@@ -886,7 +877,7 @@ static int send_consumer_relayd_socket(enum lttng_domain_type domain,
        struct lttcomm_relayd_sock *rsock = NULL;
 
        /* Connect to relayd and make version check if uri is the control. */
-       ret = create_connect_relayd(relayd_uri, &rsock);
+       ret = create_connect_relayd(relayd_uri, &rsock, consumer);
        if (ret != LTTNG_OK) {
                goto error;
        }
@@ -1021,6 +1012,10 @@ int cmd_setup_relayd(struct ltt_session *session)
                        /* Session is now ready for network streaming. */
                        session->net_handle = 1;
                }
+               session->consumer->relay_major_version =
+                       usess->consumer->relay_major_version;
+               session->consumer->relay_minor_version =
+                       usess->consumer->relay_minor_version;
        }
 
        if (ksess && ksess->consumer && ksess->consumer->type == CONSUMER_DST_NET
@@ -1039,6 +1034,10 @@ int cmd_setup_relayd(struct ltt_session *session)
                        /* Session is now ready for network streaming. */
                        session->net_handle = 1;
                }
+               session->consumer->relay_major_version =
+                       ksess->consumer->relay_major_version;
+               session->consumer->relay_minor_version =
+                       ksess->consumer->relay_minor_version;
        }
 
 error:
This page took 0.026595 seconds and 5 git commands to generate.