From: David Goulet Date: Wed, 6 Nov 2013 18:25:20 +0000 (-0500) Subject: Write TCP JUL port in the lttng's rundir X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=cd9290dd510e4c5224bde8cb44010374daa832e2 Write TCP JUL port in the lttng's rundir The default name is jul.port and this file will be read by the JavaAgent at init time so it can connect to a custom port without recompiling the Java application or modifying the Java application with a sessiond port option. Signed-off-by: David Goulet --- diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index 958ff0589..a790844a1 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -455,6 +455,11 @@ static void cleanup(void) DBG("Removing %s", path); (void) unlink(path); + snprintf(path, PATH_MAX, "%s/%s", rundir, + DEFAULT_LTTNG_SESSIOND_JULPORT_FILE); + DBG("Removing %s", path); + (void) unlink(path); + /* kconsumerd */ snprintf(path, PATH_MAX, DEFAULT_KCONSUMERD_ERR_SOCK_PATH, @@ -4429,6 +4434,34 @@ error: return; } +/* + * Write JUL TCP port using the rundir. + */ +static void write_julport(void) +{ + int ret; + char path[PATH_MAX]; + + assert(rundir); + + ret = snprintf(path, sizeof(path), "%s/" + DEFAULT_LTTNG_SESSIOND_JULPORT_FILE, rundir); + if (ret < 0) { + PERROR("snprintf julport path"); + goto error; + } + + /* + * Create TCP JUL port file in rundir. Return value is of no importance. + * The execution will continue even though we are not able to write the + * file. + */ + (void) utils_create_pid_file(jul_tcp_port, path); + +error: + return; +} + /* * main */ @@ -4735,6 +4768,7 @@ int main(int argc, char **argv) } write_pidfile(); + write_julport(); /* Initialize communication library */ lttcomm_init(); diff --git a/src/common/defaults.h b/src/common/defaults.h index 821128eb4..650234542 100644 --- a/src/common/defaults.h +++ b/src/common/defaults.h @@ -88,6 +88,7 @@ #define DEFAULT_LTTNG_RUNDIR CONFIG_LTTNG_SYSTEM_RUNDIR #define DEFAULT_LTTNG_HOME_RUNDIR "%s/.lttng" #define DEFAULT_LTTNG_SESSIOND_PIDFILE "lttng-sessiond.pid" +#define DEFAULT_LTTNG_SESSIOND_JULPORT_FILE "jul.port" /* Default unix socket path */ #define DEFAULT_GLOBAL_CLIENT_UNIX_SOCK DEFAULT_LTTNG_RUNDIR "/client-lttng-sessiond"