Fix: unprivilieged sessiond agent port clashes with root sessiond
[lttng-tools.git] / src / bin / lttng-sessiond / sessiond-config.c
index 9ac5f774eb75a24a23685cb1ff73a2c7c7f3edd6..587f2f82dfd1e676bd63ff40494ae98bd80962ec 100644 (file)
@@ -32,7 +32,7 @@ struct sessiond_config sessiond_config_build_defaults = {
        .verbose =                              0,
        .verbose_consumer =                     0,
 
-       .agent_tcp_port =                       DEFAULT_AGENT_TCP_PORT,
+       .agent_tcp_port =                       { .begin = DEFAULT_AGENT_TCP_PORT_RANGE_BEGIN, .end = DEFAULT_AGENT_TCP_PORT_RANGE_END },
        .app_socket_timeout =                   DEFAULT_APP_SOCKET_RW_TIMEOUT,
 
        .no_kernel =                            false,
@@ -188,10 +188,6 @@ int config_set_paths_root(struct sessiond_config *config)
                        DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH);
        config_string_set_static(&config->health_unix_sock_path,
                        DEFAULT_GLOBAL_HEALTH_UNIX_SOCK);
-       config_string_set_static(&config->kconsumerd_err_unix_sock_path,
-                       DEFAULT_KCONSUMERD_ERR_SOCK_PATH);
-       config_string_set_static(&config->kconsumerd_cmd_unix_sock_path,
-                       DEFAULT_KCONSUMERD_CMD_SOCK_PATH);
 end:
        return ret;
 }
@@ -340,6 +336,24 @@ int sessiond_config_init(struct sessiond_config *config)
        config_string_set(&config->kconsumerd_path, str);
        str = NULL;
 
+       ret = asprintf(&str, DEFAULT_KCONSUMERD_ERR_SOCK_PATH,
+                       config->rundir.value);
+       if (ret < 0) {
+               ERR("Failed to set kernel consumer error socket path");
+               goto end;
+       }
+       config_string_set(&config->kconsumerd_err_unix_sock_path, str);
+       str = NULL;
+
+       ret = asprintf(&str, DEFAULT_KCONSUMERD_CMD_SOCK_PATH,
+                       config->rundir.value);
+       if (ret < 0) {
+               ERR("Failed to set kernel consumer command socket path");
+               goto end;
+       }
+       config_string_set(&config->kconsumerd_cmd_unix_sock_path, str);
+       str = NULL;
+
        ret = asprintf(&str, "%s/%s", config->rundir.value,
                        DEFAULT_LTTNG_SESSIOND_PIDFILE);
        if (ret < 0) {
@@ -480,7 +494,13 @@ void sessiond_config_log(struct sessiond_config *config)
        DBG_NO_LOC("\tverbose:                      %i", config->verbose);
        DBG_NO_LOC("\tverbose consumer:             %i", config->verbose_consumer);
        DBG_NO_LOC("\tquiet mode:                   %s", config->quiet ? "True" : "False");
-       DBG_NO_LOC("\tagent_tcp_port:               %i", config->agent_tcp_port);
+       if (config->agent_tcp_port.begin == config->agent_tcp_port.end) {
+               DBG_NO_LOC("\tagent_tcp_port:               %i", config->agent_tcp_port.begin);
+       } else {
+               DBG_NO_LOC("\tagent_tcp_port:               [%i, %i]",
+                               config->agent_tcp_port.begin,
+                               config->agent_tcp_port.end);
+       }
        DBG_NO_LOC("\tapplication socket timeout:   %i", config->app_socket_timeout);
        DBG_NO_LOC("\tno-kernel:                    %s", config->no_kernel ? "True" : "False");
        DBG_NO_LOC("\tbackground:                   %s", config->background ? "True" : "False");
This page took 0.02514 seconds and 5 git commands to generate.