X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fremove_trigger.c;h=5586eb9638aba32157a265887d63de5c23af009e;hb=e80b715053eb21fe9139241be786afc2688c6795;hp=1fabc70ec91e698db134f90332156339f83a4135;hpb=b61776fb63d4bb14df77c0b5a15de28beed7ddfc;p=lttng-tools.git diff --git a/src/bin/lttng/commands/remove_trigger.c b/src/bin/lttng/commands/remove_trigger.c index 1fabc70ec..5586eb963 100644 --- a/src/bin/lttng/commands/remove_trigger.c +++ b/src/bin/lttng/commands/remove_trigger.c @@ -19,14 +19,14 @@ static const char help_msg[] = enum { OPT_HELP, OPT_LIST_OPTIONS, - OPT_USER_ID, + OPT_OWNER_UID, }; static const struct argpar_opt_descr remove_trigger_options[] = { { OPT_HELP, 'h', "help", false }, { OPT_LIST_OPTIONS, '\0', "list-options", false }, - { OPT_USER_ID, '\0', "user-id", true }, + { OPT_OWNER_UID, '\0', "owner-uid", true }, ARGPAR_OPT_DESCR_SENTINEL, }; @@ -60,13 +60,13 @@ int cmd_remove_trigger(int argc, const char **argv) { int ret; struct argpar_parse_ret argpar_parse_ret = {}; - const char *id = NULL; + const char *name = NULL; int i; struct lttng_triggers *triggers = NULL; unsigned int triggers_count; enum lttng_trigger_status trigger_status; const struct lttng_trigger *trigger_to_remove = NULL; - char *user_id = NULL; + char *owner_uid = NULL; long long uid; argpar_parse_ret = argpar_parse(argc - 1, argv + 1, @@ -94,10 +94,10 @@ int cmd_remove_trigger(int argc, const char **argv) remove_trigger_options); ret = 0; goto end; - case OPT_USER_ID: + case OPT_OWNER_UID: { - if (!assign_string(&user_id, item_opt->arg, - "--user-id")) { + if (!assign_string(&owner_uid, item_opt->arg, + "--owner-uid")) { goto error; } break; @@ -109,27 +109,27 @@ int cmd_remove_trigger(int argc, const char **argv) const struct argpar_item_non_opt *item_non_opt = (const struct argpar_item_non_opt *) item; - if (id) { + if (name) { ERR("Unexpected argument '%s'", item_non_opt->arg); goto error; } - id = item_non_opt->arg; + name = item_non_opt->arg; } } - if (!id) { - ERR("Missing `id` argument."); + if (!name) { + ERR("Missing `name` argument."); goto error; } - if (user_id) { + if (owner_uid) { char *end; errno = 0; - uid = strtol(user_id, &end, 10); - if (end == user_id || *end != '\0' || errno != 0) { - ERR("Failed to parse `%s` as an integer.", user_id); + uid = strtol(owner_uid, &end, 10); + if (end == owner_uid || *end != '\0' || errno != 0) { + ERR("Failed to parse `%s` as an integer.", owner_uid); } } else { uid = geteuid(); @@ -151,30 +151,38 @@ int cmd_remove_trigger(int argc, const char **argv) trigger = lttng_triggers_get_at_index(triggers, i); trigger_status = lttng_trigger_get_name(trigger, &trigger_name); - assert(trigger_status == LTTNG_TRIGGER_STATUS_OK); + switch (trigger_status) { + case LTTNG_TRIGGER_STATUS_OK: + break; + case LTTNG_TRIGGER_STATUS_UNSET: + /* Don't compare against anonymous triggers. */ + continue; + default: + abort(); + } trigger_status = lttng_trigger_get_owner_uid( trigger, &trigger_uid); assert(trigger_status == LTTNG_TRIGGER_STATUS_OK); - if (trigger_uid == uid && strcmp(trigger_name, id) == 0) { + if (trigger_uid == uid && strcmp(trigger_name, name) == 0) { trigger_to_remove = trigger; break; } } if (!trigger_to_remove) { - ERR("Couldn't find trigger with id `%s`.", id); + ERR("Couldn't find trigger with name `%s`.", name); goto error; } ret = lttng_unregister_trigger(trigger_to_remove); if (ret != 0) { - ERR("Failed to unregister trigger `%s`.", id); + ERR("Failed to unregister trigger `%s`.", name); goto error; } - MSG("Removed trigger `%s`.", id); + MSG("Removed trigger `%s`.", name); ret = 0; goto end; @@ -185,7 +193,7 @@ error: end: argpar_parse_ret_fini(&argpar_parse_ret); lttng_triggers_destroy(triggers); - free(user_id); + free(owner_uid); return ret; }