X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng-sessiond-comm.h;h=48cf933216c431ece31185b7fc55bb4ee5816f8b;hp=3d31ff842c4f0fcc0015b894b72ff1a7d557b63d;hb=daee53455d4227b223c22fdeff84722f924cc0d2;hpb=9fdb49d8eac3ff67f553743fb8ce0edee14c3ab6 diff --git a/include/lttng-sessiond-comm.h b/include/lttng-sessiond-comm.h index 3d31ff842..48cf93321 100644 --- a/include/lttng-sessiond-comm.h +++ b/include/lttng-sessiond-comm.h @@ -26,16 +26,19 @@ * These declarations should NOT be considered stable API. */ +#define _GNU_SOURCE #include #include +#include #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 */ @@ -226,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; @@ -286,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 */