Create all trace directories and files with client user credentials
[lttng-tools.git] / include / lttng-sessiond-comm.h
index 1b2c4b88e85d99515ebc40a5303e629d64a2b6a7..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-ltt-sessiond"
-#define DEFAULT_GLOBAL_APPS_UNIX_SOCK       LTTNG_RUNDIR "/apps-ltt-sessiond"
-#define DEFAULT_HOME_APPS_UNIX_SOCK         "%s/.apps-ltt-sessiond"
-#define DEFAULT_HOME_CLIENT_UNIX_SOCK       "%s/.client-ltt-sessiond"
+#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         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
@@ -114,6 +117,7 @@ enum lttcomm_return_code {
        LTTCOMM_KERN_NO_SESSION,                /* No kernel session found */
        LTTCOMM_KERN_LIST_FAIL,                 /* Kernel listing events failed */
        LTTCOMM_UST_SESS_FAIL,                  /* UST create session failed */
+       LTTCOMM_UST_CHAN_EXIST,         /* UST channel already exist */
        LTTCOMM_UST_CHAN_FAIL,                  /* UST create channel failed */
        LTTCOMM_UST_CHAN_NOT_FOUND,     /* UST channel not found */
        LTTCOMM_UST_CHAN_DISABLE_FAIL, /* UST disable channel failed */
@@ -124,12 +128,16 @@ enum lttcomm_return_code {
        LTTCOMM_UST_META_FAIL,                  /* UST open metadata failed */
        LTTCOMM_UST_START_FAIL,         /* UST start trace failed */
        LTTCOMM_UST_STOP_FAIL,                  /* UST stop trace failed */
-       LTTCOMM_UST_CONSUMER_FAIL,              /* UST consumer start failed */
+       LTTCOMM_UST_CONSUMER64_FAIL,            /* 64-bit UST consumer start failed */
+       LTTCOMM_UST_CONSUMER32_FAIL,            /* 32-bit UST consumer start failed */
        LTTCOMM_UST_STREAM_FAIL,                /* UST create stream failed */
        LTTCOMM_UST_DIR_FAIL,                   /* UST trace directory creation failed */
        LTTCOMM_UST_DIR_EXIST,                  /* UST trace directory exist */
        LTTCOMM_UST_NO_SESSION,         /* No UST session found */
        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 */
@@ -221,14 +229,16 @@ 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;
 };
 
-#ifdef CONFIG_LTTNG_TOOLS_HAVE_UST
+#ifdef HAVE_LIBLTTNG_UST_CTL
 
-#include <ust/lttng-ust-abi.h>
+#include <lttng/ust-abi.h>
 
 /*
  * Data structure for the commands sent from sessiond to UST.
@@ -265,7 +275,7 @@ struct lttcomm_ust_reply {
        } u;
 };
 
-#endif /* CONFIG_LTTNG_TOOLS_HAVE_UST */
+#endif /* HAVE_LIBLTTNG_UST_CTL */
 
 extern int lttcomm_create_unix_sock(const char *pathname);
 extern int lttcomm_connect_unix_sock(const char *pathname);
@@ -281,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.024476 seconds and 4 git commands to generate.