From: Jérémie Galarneau Date: Wed, 4 Mar 2020 23:27:28 +0000 (-0500) Subject: Fix: lttng: incorrect domain list printed when no domain is provided X-Git-Tag: v2.13.0-rc1~721 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=3533d06b152292235b1ab28364804754339e62f5 Fix: lttng: incorrect domain list printed when no domain is provided The following commands make use of a common utility function to validate the count of domains specified and print an error when it is invalid: - lttng-enable-event, - lttng-disable-event, - lttng-track, - lttng-untrack, - lttng-add-context, - lttng-enable-channel, - lttng-disable-channel. Those commands do not allow the same domains to be used. In fact, they all expect --kernel or --userspace only, except for the lttng-enable-event, lttng-disable-event, and lttng-add-context commands which allow the --log4j, --jul, and --python domain options to be used. Currently, the error message when no domain is specified is incorrect for all of those commands. The error reads as follows: `Error: Please specify a domain (-k/-u/-j).` For most commands, the -j option cannot be used. For those that allow agent domains, the message is missing the -l and -p domains. This ensures that the expected domains are printed for each of those commands. Moreover, the message is clarified by using the long form option names. Signed-off-by: Jérémie Galarneau Change-Id: I45aee075dbf6c62c4120bdeb06697b88b2d8716c --- diff --git a/src/bin/lttng/commands/add_context.c b/src/bin/lttng/commands/add_context.c index 994cd49eb..de54721cb 100644 --- a/src/bin/lttng/commands/add_context.c +++ b/src/bin/lttng/commands/add_context.c @@ -1147,8 +1147,8 @@ int cmd_add_context(int argc, const char **argv) goto end; } - ret = print_missing_or_multiple_domains(opt_kernel + opt_userspace + - opt_jul + opt_log4j); + ret = print_missing_or_multiple_domains( + opt_kernel + opt_userspace + opt_jul + opt_log4j, true); if (ret) { ret = CMD_ERROR; goto end; diff --git a/src/bin/lttng/commands/disable_channels.c b/src/bin/lttng/commands/disable_channels.c index 7aba82c02..344be237d 100644 --- a/src/bin/lttng/commands/disable_channels.c +++ b/src/bin/lttng/commands/disable_channels.c @@ -228,7 +228,8 @@ int cmd_disable_channels(int argc, const char **argv) } } - ret = print_missing_or_multiple_domains(opt_kernel + opt_userspace); + ret = print_missing_or_multiple_domains( + opt_kernel + opt_userspace, false); if (ret) { ret = CMD_ERROR; goto end; diff --git a/src/bin/lttng/commands/disable_events.c b/src/bin/lttng/commands/disable_events.c index 501c3cf3a..a42c3a3cd 100644 --- a/src/bin/lttng/commands/disable_events.c +++ b/src/bin/lttng/commands/disable_events.c @@ -368,7 +368,9 @@ int cmd_disable_events(int argc, const char **argv) } ret = print_missing_or_multiple_domains( - opt_kernel + opt_userspace + opt_jul + opt_log4j + opt_python); + opt_kernel + opt_userspace + opt_jul + opt_log4j + + opt_python, + true); if (ret) { ret = CMD_ERROR; goto end; diff --git a/src/bin/lttng/commands/enable_channels.c b/src/bin/lttng/commands/enable_channels.c index 59fde7d4c..fa65b1eaa 100644 --- a/src/bin/lttng/commands/enable_channels.c +++ b/src/bin/lttng/commands/enable_channels.c @@ -644,7 +644,8 @@ int cmd_enable_channels(int argc, const char **argv) } } - ret = print_missing_or_multiple_domains(opt_kernel + opt_userspace); + ret = print_missing_or_multiple_domains( + opt_kernel + opt_userspace, false); if (ret) { ret = CMD_ERROR; goto end; diff --git a/src/bin/lttng/commands/enable_events.c b/src/bin/lttng/commands/enable_events.c index 0de6a0cd4..f41dc9eca 100644 --- a/src/bin/lttng/commands/enable_events.c +++ b/src/bin/lttng/commands/enable_events.c @@ -1772,7 +1772,9 @@ int cmd_enable_events(int argc, const char **argv) } ret = print_missing_or_multiple_domains( - opt_kernel + opt_userspace + opt_jul + opt_log4j + opt_python); + opt_kernel + opt_userspace + opt_jul + opt_log4j + + opt_python, + true); if (ret) { ret = CMD_ERROR; goto end; diff --git a/src/bin/lttng/commands/track-untrack.c b/src/bin/lttng/commands/track-untrack.c index c674faefa..498e7ed31 100644 --- a/src/bin/lttng/commands/track-untrack.c +++ b/src/bin/lttng/commands/track-untrack.c @@ -670,7 +670,8 @@ int cmd_track_untrack(enum cmd_type cmd_type, const char *cmd_str, } } - ret = print_missing_or_multiple_domains(opt_kernel + opt_userspace); + ret = print_missing_or_multiple_domains( + opt_kernel + opt_userspace, false); if (ret) { command_ret = CMD_ERROR; goto end; diff --git a/src/bin/lttng/utils.c b/src/bin/lttng/utils.c index e88166a43..61718e54d 100644 --- a/src/bin/lttng/utils.c +++ b/src/bin/lttng/utils.c @@ -432,15 +432,19 @@ error_socket: return ret; } -int print_missing_or_multiple_domains(unsigned int sum) +int print_missing_or_multiple_domains(unsigned int domain_count, + bool include_agent_domains) { int ret = 0; - if (sum == 0) { - ERR("Please specify a domain (-k/-u/-j)."); + if (domain_count == 0) { + ERR("Please specify a domain (--kernel/--userspace%s).", + include_agent_domains ? + "/--jul/--log4j/--python" : + ""); ret = -1; - } else if (sum > 1) { - ERR("Multiple domains specified."); + } else if (domain_count > 1) { + ERR("Only one domain must be specified."); ret = -1; } diff --git a/src/bin/lttng/utils.h b/src/bin/lttng/utils.h index fe82364a0..cc7d7afca 100644 --- a/src/bin/lttng/utils.h +++ b/src/bin/lttng/utils.h @@ -45,7 +45,8 @@ int get_count_order_ulong(unsigned long x); const char *get_domain_str(enum lttng_domain_type domain); const char *get_event_type_str(enum lttng_event_type event_type); -int print_missing_or_multiple_domains(unsigned int sum); +int print_missing_or_multiple_domains(unsigned int domain_count, + bool include_agent_domains); int spawn_relayd(const char *pathname, int port); int check_relayd(void);