X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fcreate.c;h=c43ce59b906c7a5f43db8e5fed1f709262951ac6;hb=314d52225ce6d9b81d48b7645b035b1c93875369;hp=2e03373266c2ca9c3d10f469bfb5da9ef3a5dfb6;hpb=d73c58020df7ccd20d1edd250b0f00f0d7d25b5b;p=lttng-tools.git diff --git a/src/bin/lttng/commands/create.c b/src/bin/lttng/commands/create.c index 2e0337326..c43ce59b9 100644 --- a/src/bin/lttng/commands/create.c +++ b/src/bin/lttng/commands/create.c @@ -291,6 +291,12 @@ static int create_session(void) } } + if ((!opt_ctrl_url && opt_data_url) || (opt_ctrl_url && !opt_data_url)) { + ERR("You need both control and data URL."); + ret = CMD_ERROR; + goto error; + } + if (opt_output_path != NULL) { traces_path = utils_expand_path(opt_output_path); if (traces_path == NULL) { @@ -311,6 +317,12 @@ static int create_session(void) } else if (opt_url) { /* Handling URL (-U opt) */ url = opt_url; print_str_url = url; + } else if (opt_data_url && opt_ctrl_url) { + /* + * With both control and data, we'll be setting the consumer URL after + * session creation thus use no URL. + */ + url = NULL; } else if (!opt_no_output) { /* Auto output path */ alloc_path = utils_get_home_dir(); @@ -332,22 +344,14 @@ static int create_session(void) } url = alloc_url; - if (!opt_data_url && !opt_ctrl_url) { - print_str_url = alloc_url + strlen("file://"); - } + print_str_url = alloc_url + strlen("file://"); } else { /* No output means --no-output or --snapshot mode. */ url = NULL; } - if ((!opt_ctrl_url && opt_data_url) || (opt_ctrl_url && !opt_data_url)) { - ERR("You need both control and data URL."); - ret = CMD_ERROR; - goto error; - } - + /* Use default live URL if NO url is/are found. */ if ((opt_live_timer && !opt_url) && (opt_live_timer && !opt_data_url)) { - /* Use default live URL if none is found. */ ret = asprintf(&alloc_url, "net://127.0.0.1"); if (ret < 0) { PERROR("asprintf default live URL"); @@ -376,6 +380,17 @@ static int create_session(void) } 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); @@ -500,6 +515,13 @@ int cmd_create(int argc, const char **argv) } } + /* TODO: mi support */ + if (lttng_opt_mi) { + ret = -LTTNG_ERR_MI_NOT_IMPLEMENTED; + ERR("mi option not supported"); + goto end; + } + if (opt_no_consumer) { MSG("The option --no-consumer is obsolete. Use --no-output now."); ret = CMD_WARNING;