Create all trace directories and files with client user credentials
[lttng-tools.git] / include / lttng-sessiond-comm.h
index 90ff062334c789c30e368b2bb17b48c770f71771..c72a2471e85005b0727a4ecc882ccb2fb56779ec 100644 (file)
  * These declarations should NOT be considered stable API.
  */
 
+#define _GNU_SOURCE
 #include <limits.h>
 #include <lttng/lttng.h>
+#include <sys/socket.h>
 
 #define LTTNG_RUNDIR                        "/var/run/lttng"
+#define LTTNG_HOME_RUNDIR                   "%s/.lttng"
 
 /* Default unix socket path */
 #define DEFAULT_GLOBAL_CLIENT_UNIX_SOCK     LTTNG_RUNDIR "/client-lttng-sessiond"
 #define DEFAULT_GLOBAL_APPS_UNIX_SOCK       LTTNG_RUNDIR "/apps-lttng-sessiond"
-#define DEFAULT_HOME_APPS_UNIX_SOCK         "%s/.apps-lttng-sessiond"
-#define DEFAULT_HOME_CLIENT_UNIX_SOCK       "%s/.client-lttng-sessiond"
+#define DEFAULT_HOME_APPS_UNIX_SOCK         LTTNG_HOME_RUNDIR "/apps-lttng-sessiond"
+#define DEFAULT_HOME_CLIENT_UNIX_SOCK       LTTNG_HOME_RUNDIR "/client-lttng-sessiond"
 
 /* Queue size of listen(2) */
 #define LTTNG_SESSIOND_COMM_MAX_LISTEN 64
@@ -134,6 +137,7 @@ enum lttcomm_return_code {
        LTTCOMM_UST_LIST_FAIL,                  /* UST listing events failed */
        LTTCOMM_UST_EVENT_EXIST,        /* UST event exist */
        LTTCOMM_UST_EVENT_NOT_FOUND,    /* UST event not found */
+       LTTCOMM_UST_CONTEXT_EXIST,      /* UST context exist */
 
        CONSUMERD_COMMAND_SOCK_READY,           /* when consumerd command socket ready */
        CONSUMERD_SUCCESS_RECV_FD,              /* success on receiving fds */
@@ -225,6 +229,8 @@ struct lttcomm_consumer_msg {
                        uint32_t state;    /* enum lttcomm_consumer_fd_state */
                        enum lttng_event_output output; /* use splice or mmap to consume this fd */
                        uint64_t mmap_len;
+                       uid_t uid;         /* User ID owning the session */
+                       gid_t gid;         /* Group ID owning the session */
                        char path_name[PATH_MAX];
                } stream;
        } u;
@@ -285,6 +291,12 @@ extern ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd);
 
 extern ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len);
 extern ssize_t lttcomm_send_unix_sock(int sock, void *buf, size_t len);
+
+extern ssize_t lttcomm_send_creds_unix_sock(int sock, void *buf, size_t len);
+extern ssize_t lttcomm_recv_creds_unix_sock(int sock, void *buf, size_t len,
+               struct ucred *creds);
+
 extern const char *lttcomm_get_readable_code(enum lttcomm_return_code code);
+extern int lttcomm_setsockopt_creds_unix_sock(int sock);
 
 #endif /* _LTTNG_SESSIOND_COMM_H */
This page took 0.023331 seconds and 4 git commands to generate.