X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fcreate.c;h=379ca0a660908c1e3454fafd3d193b83e029e081;hp=a7d2d89bece3a4bdefa83f8712dd329a6afb39b0;hb=refs%2Fheads%2Fsow-2019-0002-rev1;hpb=b178f53e90c376dd44b020535c32649edef8f80e diff --git a/src/bin/lttng/commands/create.c b/src/bin/lttng/commands/create.c index a7d2d89be..379ca0a66 100644 --- a/src/bin/lttng/commands/create.c +++ b/src/bin/lttng/commands/create.c @@ -1,19 +1,9 @@ /* - * Copyright (C) 2011 - David Goulet - * Copyright (C) 2019 - Jérémie Galarneau + * Copyright (C) 2011 David Goulet + * Copyright (C) 2019 Jérémie Galarneau * - * 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 @@ -236,7 +226,6 @@ struct lttng_session_descriptor *create_session_descriptor(void) descriptor = lttng_session_descriptor_live_network_create( opt_session_name, uri_str1, uri_str2, opt_live_timer); - } else { /* Regular session. */ switch (output_type) { @@ -261,6 +250,23 @@ struct lttng_session_descriptor *create_session_descriptor(void) } if (!descriptor) { ERR("Failed to initialize session creation command."); + } else { + /* + * Auto-launch the relay daemon when a live session + * is created using default URLs. + */ + if (!opt_url && !opt_ctrl_url && !opt_data_url && + opt_live_timer && !check_relayd()) { + int ret; + const char *pathname = opt_relayd_path ? : + INSTALL_BIN_PATH "/lttng-relayd"; + + ret = spawn_relayd(pathname, 0); + if (ret < 0) { + lttng_session_descriptor_destroy(descriptor); + descriptor = NULL; + } + } } end: free(uris); @@ -495,7 +501,7 @@ error: * * Spawn a session daemon by forking and execv. */ -static int spawn_sessiond(char *pathname) +static int spawn_sessiond(const char *pathname) { int ret = 0; pid_t pid; @@ -574,7 +580,7 @@ end: static int launch_sessiond(void) { int ret; - char *pathname = NULL; + const char *pathname = NULL; ret = lttng_session_daemon_alive(); if (ret) { @@ -621,6 +627,7 @@ end: return ret; } +static int validate_url_option_combination(void) { int ret = 0;