projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: track-untrack.c: regression of `--all --pid` option ordering
[lttng-tools.git]
/
src
/
bin
/
lttng
/
commands
/
track-untrack.c
diff --git
a/src/bin/lttng/commands/track-untrack.c
b/src/bin/lttng/commands/track-untrack.c
index afb4d93d1fe9bc30e14f56c6aee90a8c1181330e..f503c35617b7633e8d32f57b33e2dc42a57a1c5b 100644
(file)
--- a/
src/bin/lttng/commands/track-untrack.c
+++ b/
src/bin/lttng/commands/track-untrack.c
@@
-19,6
+19,7
@@
#define _LGPL_SOURCE
#include <ctype.h>
#include <popt.h>
#define _LGPL_SOURCE
#include <ctype.h>
#include <popt.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@
-591,6
+592,7
@@
int cmd_track_untrack(enum cmd_type cmd_type, const char *cmd_str,
int argc, const char **argv, const char *help_msg)
{
int opt, ret = 0, success = 1;
int argc, const char **argv, const char *help_msg)
{
int opt, ret = 0, success = 1;
+ bool opt_all_present = false;
enum cmd_error_code command_ret = CMD_SUCCESS;
static poptContext pc;
char *session_name = NULL;
enum cmd_error_code command_ret = CMD_SUCCESS;
static poptContext pc;
char *session_name = NULL;
@@
-670,29
+672,7
@@
int cmd_track_untrack(enum cmd_type cmd_type, const char *cmd_str,
type_state = STATE_VGID;
break;
case OPT_ALL:
type_state = STATE_VGID;
break;
case OPT_ALL:
- switch (type_state) {
- case STATE_PID:
- opt_pid.all = 1;
- break;
- case STATE_VPID:
- opt_vpid.all = 1;
- break;
- case STATE_UID:
- opt_uid.all = 1;
- break;
- case STATE_VUID:
- opt_vuid.all = 1;
- break;
- case STATE_GID:
- opt_gid.all = 1;
- break;
- case STATE_VGID:
- opt_vgid.all = 1;
- break;
- default:
- command_ret = CMD_ERROR;
- goto end;
- }
+ opt_all_present = true;
break;
default:
command_ret = CMD_UNDEFINED;
break;
default:
command_ret = CMD_UNDEFINED;
@@
-706,6
+686,36
@@
int cmd_track_untrack(enum cmd_type cmd_type, const char *cmd_str,
goto end;
}
goto end;
}
+ /*
+ * If the `--all` option is present set the appropriate tracker's `all`
+ * field.
+ */
+ if (opt_all_present) {
+ switch (type_state) {
+ case STATE_PID:
+ opt_pid.all = 1;
+ break;
+ case STATE_VPID:
+ opt_vpid.all = 1;
+ break;
+ case STATE_UID:
+ opt_uid.all = 1;
+ break;
+ case STATE_VUID:
+ opt_vuid.all = 1;
+ break;
+ case STATE_GID:
+ opt_gid.all = 1;
+ break;
+ case STATE_VGID:
+ opt_vgid.all = 1;
+ break;
+ default:
+ command_ret = CMD_ERROR;
+ goto end;
+ }
+ }
+
if (!opt_session_name) {
session_name = get_session_name();
if (session_name == NULL) {
if (!opt_session_name) {
session_name = get_session_name();
if (session_name == NULL) {
This page took
0.023016 seconds
and
4
git commands to generate.