Implement FreeBSD credential support
[lttng-tools.git] / src / common / compat / socket.h
index dcb6cdede757b3f43238b8ffaffeaf11fa17f3ff..7356324f7f3ab0bf35bbea027ac4eb9d75785fb8 100644 (file)
 #ifdef __linux__
 
 #define LTTNG_SOCK_CREDS SCM_CREDENTIALS
-#define LTTNG_SOCK_FDS   SCM_RIGHTS
 
 typedef struct ucred lttng_sock_cred;
 
-#define LTTNG_SOCK_SET_UID_CRED(c, u) LTTNG_REF(c)->uid = u;
-#define LTTNG_SOCK_SET_GID_CRED(c, g) LTTNG_REF(c)->gid = g;
-#define LTTNG_SOCK_SET_PID_CRED(c, p) LTTNG_REF(c)->pid = p;
+#define LTTNG_SOCK_SET_UID_CRED(c, u) LTTNG_REF(c)->uid = u
+#define LTTNG_SOCK_SET_GID_CRED(c, g) LTTNG_REF(c)->gid = g
+#define LTTNG_SOCK_SET_PID_CRED(c, p) LTTNG_REF(c)->pid = p
 
-#elif __FreeBSD__
+#define LTTNG_SOCK_GET_UID_CRED(c) LTTNG_REF(c)->uid
+#define LTTNG_SOCK_GET_GID_CRED(c) LTTNG_REF(c)->gid
+#define LTTNG_SOCK_GET_PID_CRED(c) LTTNG_REF(c)->pid
 
-#undef SO_PASSCRED
-#define SO_PASSCRED 0
+#elif defined(__FreeBSD__)
 
-#define LTTNG_SOCK_CREDS SCM_CREDS
-#define LTTNG_SOCK_FDS   SCM_RIGHTS
+struct lttng_sock_cred {
+       uid_t uid;
+       gid_t gid;
+};
 
-typedef struct cmsgcred lttng_sock_cred;
+typedef struct lttng_sock_cred lttng_sock_cred;
 
-#define LTTNG_SOCK_SET_UID_CRED(c, uid) LTTNG_REF(c)->cmcred_uid = uid;
-#define LTTNG_SOCK_SET_GID_CRED(c, gid) LTTNG_REF(c)->cmcred_gid = gid;
-#define LTTNG_SOCK_SET_PID_CRED(c, pid) LTTNG_REF(c)->cmcred_pid = pid;
+#define LTTNG_SOCK_GET_UID_CRED(c) LTTNG_REF(c)->uid
+#define LTTNG_SOCK_GET_GID_CRED(c) LTTNG_REF(c)->gid
+#define LTTNG_SOCK_GET_PID_CRED(c) -1
 
 #else
-#error "Please add support for your OS into lttng/ust-endian.h."
+#error "Please add support for your OS."
 #endif /* __linux__ , __FreeBSD__ */
 
 #endif /* _COMPAT_SOCKET_H */
This page took 0.029793 seconds and 4 git commands to generate.