X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=libustcomm%2Fustcomm.c;h=1f4bce95cbc4a7f726c1d612ca28e5cb130d42d2;hb=c97d443730716166051e0b6b95d26ab3faadf8dc;hp=630f90609cb403ec136f8120edb8b85c171f99ee;hpb=c472cce0f033b101297cb617af52b4b24e8e8c78;p=ust.git diff --git a/libustcomm/ustcomm.c b/libustcomm/ustcomm.c index 630f906..1f4bce9 100644 --- a/libustcomm/ustcomm.c +++ b/libustcomm/ustcomm.c @@ -109,8 +109,18 @@ int ustcomm_request_consumer(pid_t pid, const char *channel) char *msg=NULL; int retval = 0; struct ustcomm_connection conn; + char *explicit_daemon_socket_path; + + explicit_daemon_socket_path = getenv("UST_DAEMON_SOCKET"); + if(explicit_daemon_socket_path) { + /* user specified explicitly a socket path */ + result = snprintf(path, UNIX_PATH_MAX, "%s", explicit_daemon_socket_path); + } + else { + /* just use the default path */ + result = snprintf(path, UNIX_PATH_MAX, "%s/ustd", SOCK_DIR); + } - result = snprintf(path, UNIX_PATH_MAX, "%s/ustd", SOCK_DIR); if(result >= UNIX_PATH_MAX) { ERR("string overflow allocating socket name"); return -1; @@ -485,31 +495,31 @@ free_name: * can connect to it. */ -int ustcomm_init_ustd(struct ustcomm_ustd *handle) +int ustcomm_init_ustd(struct ustcomm_ustd *handle, const char *sock_path) { - int result; char *name; + int retval = 0; - result = asprintf(&name, "%s/%s", SOCK_DIR, "ustd"); - if(result >= UNIX_PATH_MAX) { - ERR("string overflow allocating socket name"); - return -1; + if(sock_path) { + asprintf(&name, "%s", sock_path); + } + else { + asprintf(&name, "%s/%s", SOCK_DIR, "ustd"); } handle->server.listen_fd = init_named_socket(name, &handle->server.socketpath); if(handle->server.listen_fd < 0) { ERR("error initializing named socket at %s", name); + retval = -1; goto free_name; } - free(name); INIT_LIST_HEAD(&handle->server.connections); - return 0; - free_name: free(name); - return -1; + + return retval; } static char *find_tok(char *str)