- status = send_consumer_relayd_socket(session_id,
- &consumer->dst.net.control, consumer, sock,
- session_name, hostname, base_path, session_live_timer,
- current_chunk_id, session_creation_time,
- session_name_contains_creation_time);
+ int ret;
+ uint64_t result_flags = 0;
+ /* Connect to relayd and make version check if uri is the control. */
+ status = create_connect_relayd(&consumer->dst.net.control, &control_sock);
+ if (status != LTTNG_OK) {
+ goto error;
+ }
+ LTTNG_ASSERT(control_sock);
+
+ consumer->relay_major_version = control_sock->major;
+ consumer->relay_minor_version = control_sock->minor;
+
+ ret = relayd_get_configuration(control_sock, 0, &result_flags);
+ if (ret < 0) {
+ ERR("Unable to get relayd configuration");
+ status = LTTNG_ERR_RELAYD_CONNECT_FAIL;
+ goto error;
+ }
+
+ if (result_flags & LTTCOMM_RELAYD_CONFIGURATION_FLAG_CLEAR_ALLOWED) {
+ consumer->relay_allows_clear = true;
+ }
+
+ status = send_consumer_relayd_socket(session_id, &consumer->dst.net.control,
+ consumer, sock, session_name, hostname, base_path,
+ session_live_timer, current_chunk_id, session_creation_time,
+ session_name_contains_creation_time, *control_sock);
+