Make consumer verbose only with --verbose-consumer option
[lttng-tools.git] / include / lttng-sessiond-comm.h
index 55647faf05b58a73d7d9eca4e86696dc43f92fe2..48cf933216c431ece31185b7fc55bb4ee5816f8b 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
@@ -94,6 +97,7 @@ enum lttcomm_return_code {
        LTTCOMM_NO_EVENT,                               /* No event found */
        LTTCOMM_CONNECT_FAIL,           /* Unable to connect to unix socket */
        LTTCOMM_APP_NOT_FOUND,          /* App not found in traceable app list */
+       LTTCOMM_EPERM,                  /* Permission denied */
        LTTCOMM_KERN_NA,                                /* Kernel tracer unavalable */
        LTTCOMM_KERN_EVENT_EXIST,       /* Kernel event already exists */
        LTTCOMM_KERN_SESS_FAIL,                 /* Kernel create session failed */
@@ -125,12 +129,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 */
@@ -222,6 +230,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;
@@ -282,6 +292,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.024964 seconds and 4 git commands to generate.