#include "../command.h"
#include <common/sessiond-comm/sessiond-comm.h>
+#include <common/utils.h>
static char *opt_session_name;
static int opt_destroy_all;
*/
static void usage(FILE *ofp)
{
- fprintf(ofp, "usage: lttng destroy [options] [NAME]\n");
+ fprintf(ofp, "usage: lttng destroy [NAME] [OPTIONS]\n");
fprintf(ofp, "\n");
fprintf(ofp, "Where NAME is an optional session name. If not specified, lttng will\n");
fprintf(ofp, "get it from the configuration directory (.lttng).\n");
fprintf(ofp, "\n");
+ fprintf(ofp, "Options:\n");
fprintf(ofp, " -h, --help Show this help\n");
fprintf(ofp, " -a, --all Destroy all sessions\n");
fprintf(ofp, " --list-options Simple listing of options\n");
static int destroy_session(const char *session_name)
{
int ret;
+ char *default_session_name = NULL;
ret = lttng_destroy_session(session_name);
if (ret < 0) {
switch (-ret) {
- case LTTCOMM_SESS_NOT_FOUND:
+ case LTTNG_ERR_SESS_NOT_FOUND:
WARN("Session name %s not found", session_name);
break;
default:
+ ERR("%s", lttng_strerror(ret));
break;
}
goto error;
}
MSG("Session %s destroyed", session_name);
- config_destroy_default();
+
+ default_session_name = get_session_name_quiet();
+ if (default_session_name &&
+ !strncmp(session_name, session_name, NAME_MAX)) {
+ config_destroy_default();
+ }
ret = CMD_SUCCESS;
error:
+ free(default_session_name);
return ret;
}
count = lttng_list_sessions(&sessions);
if (count == 0) {
MSG("No session found, nothing to do.");
+ } else if (count < 0) {
+ ERR("%s", lttng_strerror(ret));
+ goto error;
}
+
for (i = 0; i < count; i++) {
ret = destroy_session(sessions[i].name);
if (ret < 0) {