Create all trace directories and files with client user credentials
[lttng-tools.git] / include / lttng-sessiond-comm.h
index 74d7dc99cef1385c518e13286f6085313292da3a..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"
@@ -227,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;
@@ -287,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.02423 seconds and 4 git commands to generate.