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 <jeremie.galarneau@efficios.com>
Change-Id: I45aee075dbf6c62c4120bdeb06697b88b2d8716c
- 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;
if (ret) {
ret = CMD_ERROR;
goto end;
- 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;
if (ret) {
ret = CMD_ERROR;
goto end;
}
ret = print_missing_or_multiple_domains(
}
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;
if (ret) {
ret = CMD_ERROR;
goto end;
- 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;
if (ret) {
ret = CMD_ERROR;
goto end;
}
ret = print_missing_or_multiple_domains(
}
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;
if (ret) {
ret = CMD_ERROR;
goto end;
- 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;
if (ret) {
command_ret = CMD_ERROR;
goto end;
-int print_missing_or_multiple_domains(unsigned int sum)
+int print_missing_or_multiple_domains(unsigned int domain_count,
+ bool include_agent_domains)
- 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" :
+ "");
- } else if (sum > 1) {
- ERR("Multiple domains specified.");
+ } else if (domain_count > 1) {
+ ERR("Only one domain must be specified.");
const char *get_domain_str(enum lttng_domain_type domain);
const char *get_event_type_str(enum lttng_event_type event_type);
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);
int spawn_relayd(const char *pathname, int port);
int check_relayd(void);