X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Fsave.c;fp=src%2Flib%2Flttng-ctl%2Fsave.c;h=0000000000000000000000000000000000000000;hp=c8d8ac9c24ed4e2118c4c036047888affd7a3bc1;hb=4bd69c5f1161cd065f487da0f4c1aa03a73c47e4;hpb=657d1bf105996bf8f6e13af697fb1112afa61b28 diff --git a/src/lib/lttng-ctl/save.c b/src/lib/lttng-ctl/save.c deleted file mode 100644 index c8d8ac9c2..000000000 --- a/src/lib/lttng-ctl/save.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (C) 2013 Jérémie Galarneau - * - * SPDX-License-Identifier: LGPL-2.1-only - * - */ - -#define _LGPL_SOURCE -#include - -#include -#include -#include -#include - -#include "lttng-ctl-helper.h" - -struct lttng_save_session_attr *lttng_save_session_attr_create(void) -{ - return zmalloc(sizeof(struct lttng_save_session_attr)); -} - -void lttng_save_session_attr_destroy(struct lttng_save_session_attr *output) -{ - if (output) { - free(output); - } -} - -const char *lttng_save_session_attr_get_session_name( - struct lttng_save_session_attr *attr) -{ - const char *ret = NULL; - - if (attr && attr->session_name[0]) { - ret = attr->session_name; - } - - return ret; -} - -const char *lttng_save_session_attr_get_output_url( - struct lttng_save_session_attr *attr) -{ - const char *ret = NULL; - - if (attr && attr->configuration_url[0]) { - ret = attr->configuration_url; - } - - return ret; -} - -int lttng_save_session_attr_get_overwrite( - struct lttng_save_session_attr *attr) -{ - return attr ? attr->overwrite : -LTTNG_ERR_INVALID; -} - -int lttng_save_session_attr_get_omit_name( - struct lttng_save_session_attr *attr) -{ - return attr ? attr->omit_name : -LTTNG_ERR_INVALID; -} - -int lttng_save_session_attr_get_omit_output( - struct lttng_save_session_attr *attr) -{ - return attr ? attr->omit_output : -LTTNG_ERR_INVALID; -} - -int lttng_save_session_attr_set_session_name( - struct lttng_save_session_attr *attr, const char *session_name) -{ - int ret = 0; - - if (!attr) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - - if (session_name) { - size_t len; - - len = strlen(session_name); - if (len >= LTTNG_NAME_MAX) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - - ret = lttng_strncpy(attr->session_name, session_name, - sizeof(attr->session_name)); - if (ret) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - } else { - attr->session_name[0] = '\0'; - } -error: - return ret; -} - -int lttng_save_session_attr_set_output_url( - struct lttng_save_session_attr *attr, const char *url) -{ - int ret = 0; - size_t len; - ssize_t size; - struct lttng_uri *uris = NULL; - - if (!attr) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - - if (!url) { - attr->configuration_url[0] = '\0'; - ret = 0; - goto end; - } - - len = strlen(url); - if (len >= PATH_MAX) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - - size = uri_parse_str_urls(url, NULL, &uris); - if (size <= 0 || uris[0].dtype != LTTNG_DST_PATH) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - - /* Copy string plus the NULL terminated byte. */ - ret = lttng_strncpy(attr->configuration_url, uris[0].dst.path, - sizeof(attr->configuration_url)); - if (ret) { - ret = -LTTNG_ERR_INVALID; - goto error; - } - -end: -error: - free(uris); - return ret; -} - -int lttng_save_session_attr_set_overwrite( - struct lttng_save_session_attr *attr, int overwrite) -{ - int ret = 0; - - if (!attr) { - ret = -LTTNG_ERR_INVALID; - goto end; - } - - attr->overwrite = !!overwrite; -end: - return ret; -} - -int lttng_save_session_attr_set_omit_name( - struct lttng_save_session_attr *attr, int omit_name) -{ - int ret = 0; - - if (!attr) { - ret = -LTTNG_ERR_INVALID; - goto end; - } - - attr->omit_name = !!omit_name; -end: - return ret; -} - -int lttng_save_session_attr_set_omit_output( - struct lttng_save_session_attr *attr, int omit_output) -{ - int ret = 0; - - if (!attr) { - ret = -LTTNG_ERR_INVALID; - goto end; - } - - attr->omit_output = !!omit_output; -end: - return ret; -} - -/* - * The lttng-ctl API does not expose all the information needed to save the - * session configurations. Thus, we must send a save command to the session - * daemon which will, in turn, save its current session configuration. - */ -int lttng_save_session(struct lttng_save_session_attr *attr) -{ - struct lttcomm_session_msg lsm; - int ret; - - if (!attr) { - ret = -LTTNG_ERR_INVALID; - goto end; - } - - memset(&lsm, 0, sizeof(lsm)); - lsm.cmd_type = LTTNG_SAVE_SESSION; - - memcpy(&lsm.u.save_session.attr, attr, - sizeof(struct lttng_save_session_attr)); - ret = lttng_ctl_ask_sessiond(&lsm, NULL); -end: - return ret; -}