From: Jérémie Galarneau Date: Fri, 22 Mar 2019 21:51:40 +0000 (-0400) Subject: Fix: check illegal combinations of ctrl-url/data-url/ouput/set-url X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=a8d119b5ea8e40cde5f5e70c1ae4cfc86cb35a80 Fix: check illegal combinations of ctrl-url/data-url/ouput/set-url The lttng CLI must check for illegal combinations of the --ctrl-url, --data-url, --set-url, and --output options. The following combinations are mutually exclusive: 1) --set-url 2) --ctrl-url + --data-url 3) --output Combining these incompatible options resulted in unhelpful generic error messages since the error is catched a lot farther than it should. Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng/commands/create.c b/src/bin/lttng/commands/create.c index d2741c373..d3e5b9a84 100644 --- a/src/bin/lttng/commands/create.c +++ b/src/bin/lttng/commands/create.c @@ -616,6 +616,22 @@ end: return ret; } +int validate_url_option_combination(void) +{ + int ret = 0; + int used_count = 0; + + used_count += !!opt_url; + used_count += !!opt_output_path; + used_count += (opt_data_url || opt_ctrl_url); + if (used_count > 1) { + ERR("Only one of the --set-url, --ctrl-url/data-url, or --output options may be used at once."); + ret = -1; + } + + return ret; +} + /* * The 'create ' first level command * @@ -687,6 +703,12 @@ int cmd_create(int argc, const char **argv) goto end; } + ret = validate_url_option_combination(); + if (ret) { + ret = CMD_ERROR; + goto end; + } + /* Spawn a session daemon if needed */ if (!opt_no_sessiond) { ret = launch_sessiond();