+ /* Use default live URL if NO url is/are found. */
+ if ((opt_live_timer && !opt_url) && (opt_live_timer && !opt_data_url)) {
+ ret = asprintf(&alloc_url, "net://127.0.0.1");
+ if (ret < 0) {
+ PERROR("asprintf default live URL");
+ ret = CMD_FATAL;
+ goto error;
+ }
+ url = alloc_url;
+ print_str_url = url;
+ }
+
+ if (opt_snapshot && opt_live_timer) {
+ ERR("Snapshot and live modes are mutually exclusive.");
+ ret = CMD_ERROR;
+ goto error;
+ }
+
+ if (opt_snapshot) {
+ /* No output by default. */
+ const char *snapshot_url = NULL;
+
+ if (opt_url) {
+ snapshot_url = url;
+ } else if (!opt_data_url && !opt_ctrl_url) {
+ /* This is the session path that we need to use as output. */
+ snapshot_url = url;
+ }
+ ret = lttng_create_session_snapshot(session_name, snapshot_url);
+ } else if (opt_live_timer) {
+ const char *pathname;
+
+ if (opt_relayd_path) {
+ pathname = opt_relayd_path;
+ } else {
+ pathname = INSTALL_BIN_PATH "/lttng-relayd";
+ }
+ if (!opt_url && !opt_data_url && !check_relayd() &&
+ spawn_relayd(pathname, 0) < 0) {
+ goto error;
+ }
+ ret = lttng_create_session_live(session_name, url, opt_live_timer);
+ } else {
+ ret = _lttng_create_session_ext(session_name, url, datetime, -1);
+ }