Major changes
[lttng-tools.git] / lttng / utils.c
diff --git a/lttng/utils.c b/lttng/utils.c
new file mode 100644 (file)
index 0000000..b05fd22
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c)  2011 David Goulet <david.goulet@polymtl.ca>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ */
+
+#include <stdlib.h>
+
+#include <lttng/lttng.h>
+
+#include "config.h"
+
+/*
+ *  get_config_file_path
+ *
+ *  Return absolute path to the configuration file.
+ */
+char *get_config_file_path(void)
+{
+       char *alloc_path, *path = NULL;
+
+       /* Get path to config directory */
+       alloc_path = config_get_default_path();
+       if (alloc_path == NULL) {
+               goto error;
+       }
+
+       /* Get path to config file */
+       path = config_generate_dir_path(alloc_path);
+       if (path == NULL) {
+               goto free_alloc_path;
+       }
+
+free_alloc_path:
+       free(alloc_path);
+error:
+       return path;
+}
+
+/*
+ *  get_session_name
+ *
+ *  Return allocated string with the session name found in the config
+ *  directory.
+ */
+char *get_session_name(void)
+{
+       char *path, *session_name = NULL;
+
+       /* Get path to config file */
+       path = get_config_file_path();
+       if (path == NULL) {
+               goto error;
+       }
+
+       /* Get session name from config */
+       session_name = config_read_session_name(path);
+       if (session_name == NULL) {
+               goto free_path;
+       }
+
+free_path:
+       free(path);
+error:
+       return session_name;
+}
+
+/*
+ *  set_session_name
+ *
+ *  Get session name and set it for the lttng control lib.
+ */
+int set_session_name(void)
+{
+       int ret;
+       char *session_name;
+
+       session_name = get_session_name();
+       if (session_name == NULL) {
+               ret = -1;
+               goto error;
+       }
+
+       lttng_set_session_name(session_name);
+       free(session_name);
+
+       ret = 0;
+
+error:
+       return ret;
+}
This page took 0.024401 seconds and 4 git commands to generate.