* 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
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 */
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;
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 */