X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fregenerate.c;h=5328ee37336e36014f204caf06e8f20a4119fa73;hp=c64d8fe530c8b9d0e6ac2f94e655ba7193efe56f;hb=dd392e9453fb7aa5f356ed1765db72ef33150461;hpb=eded6438f3b15eccc391525f653e03293a890d32 diff --git a/src/bin/lttng/commands/regenerate.c b/src/bin/lttng/commands/regenerate.c index c64d8fe53..5328ee373 100644 --- a/src/bin/lttng/commands/regenerate.c +++ b/src/bin/lttng/commands/regenerate.c @@ -1,18 +1,8 @@ /* - * Copyright (C) 2015 - Julien Desfossez + * Copyright (C) 2015 Julien Desfossez * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: GPL-2.0-only * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define _LGPL_SOURCE @@ -32,6 +22,13 @@ static char *opt_session_name; static char *session_name = NULL; static int regenerate_metadata(int argc, const char **argv); +static int regenerate_statedump(int argc, const char **argv); + +#ifdef LTTNG_EMBED_HELP +static const char help_msg[] = +#include +; +#endif enum { OPT_HELP = 1, @@ -52,6 +49,7 @@ static struct poptOption long_options[] = { static struct cmd_struct actions[] = { { "metadata", regenerate_metadata }, + { "statedump", regenerate_statedump }, { NULL, NULL } /* Array closure */ }; @@ -76,12 +74,31 @@ static int regenerate_metadata(int argc, const char **argv) int ret; if (argc > 1) { - ret = -LTTNG_ERR_INVALID; + ret = CMD_UNDEFINED; goto end; } ret = lttng_regenerate_metadata(session_name); if (ret == 0) { MSG("Metadata successfully regenerated for session %s", session_name); + } else { + ERR("%s", lttng_strerror(ret)); + } + +end: + return ret; +} + +static int regenerate_statedump(int argc, const char **argv) +{ + int ret; + + if (argc > 1) { + ret = -LTTNG_ERR_INVALID; + goto end; + } + ret = lttng_regenerate_statedump(session_name); + if (ret == 0) { + MSG("State dump successfully regenerated for session %s", session_name); } end: @@ -94,12 +111,13 @@ static int handle_command(const char **argv) int ret = CMD_SUCCESS, i = 0, argc, command_ret = CMD_SUCCESS; if (argv == NULL) { - ERR("argv is null"); + ERR("No object specified for regenerate command."); command_ret = CMD_ERROR; goto end; } argc = count_arguments(argv); + assert(argc >= 1); cmd = &actions[i]; while (cmd->func != NULL) { @@ -215,12 +233,7 @@ int cmd_regenerate(int argc, const char **argv) command_ret = handle_command(poptGetArgs(pc)); if (command_ret) { - switch (-command_ret) { - default: - ERR("%s", lttng_strerror(command_ret)); - success = 0; - break; - } + success = 0; } if (lttng_opt_mi) {