*/
#define _GNU_SOURCE
+#include <fcntl.h>
#include <getopt.h>
#include <grp.h>
#include <limits.h>
*/
static int init_thread_quit_pipe(void)
{
- int ret, i;
+ int ret;
- ret = pipe(thread_quit_pipe);
+ ret = pipe2(thread_quit_pipe, O_CLOEXEC);
if (ret < 0) {
- PERROR("thread quit pipe");
+ perror("thread quit pipe");
goto error;
}
- for (i = 0; i < 2; i++) {
- ret = fcntl(thread_quit_pipe[i], F_SETFD, FD_CLOEXEC);
- if (ret < 0) {
- PERROR("fcntl");
- goto error;
- }
- }
-
error:
return ret;
}
/*
* Command LTTNG_CREATE_SESSION processed by the client thread.
*/
-static int cmd_create_session(char *name, char *path, lttng_sock_cred *creds)
+static int cmd_create_session(char *name, char *path, struct ucred *creds)
{
int ret;
- ret = session_create(name, path, LTTNG_SOCK_GET_UID_CRED(creds),
- LTTNG_SOCK_GET_GID_CRED(creds));
+ ret = session_create(name, path, creds->uid, creds->gid);
if (ret != LTTCOMM_OK) {
goto error;
}
*/
if (need_tracing_session) {
if (!session_access_ok(cmd_ctx->session,
- LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
- LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds))) {
+ cmd_ctx->creds.uid, cmd_ctx->creds.gid)) {
ret = LTTCOMM_EPERM;
goto error;
}
unsigned int nr_sessions;
session_lock_list();
- nr_sessions = lttng_sessions_count(
- LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
- LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds));
+ nr_sessions = lttng_sessions_count(cmd_ctx->creds.uid, cmd_ctx->creds.gid);
ret = setup_lttng_msg(cmd_ctx, sizeof(struct lttng_session) * nr_sessions);
if (ret < 0) {
/* Filled the session array */
list_lttng_sessions((struct lttng_session *)(cmd_ctx->llm->payload),
- LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
- LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds));
+ cmd_ctx->creds.uid, cmd_ctx->creds.gid);
session_unlock_list();
*/
static int create_kernel_poll_pipe(void)
{
- int ret, i;
-
- ret = pipe(kernel_poll_pipe);
- if (ret < 0) {
- PERROR("kernel poll pipe");
- goto error;
- }
-
- for (i = 0; i < 2; i++) {
- ret = fcntl(kernel_poll_pipe[i], F_SETFD, FD_CLOEXEC);
- if (ret < 0) {
- PERROR("fcntl kernel_poll_pipe");
- goto error;
- }
- }
-
-error:
- return ret;
+ return pipe2(kernel_poll_pipe, O_CLOEXEC);
}
/*
*/
static int create_apps_cmd_pipe(void)
{
- int ret, i;
-
- ret = pipe(apps_cmd_pipe);
- if (ret < 0) {
- PERROR("apps cmd pipe");
- goto error;
- }
-
- for (i = 0; i < 2; i++) {
- ret = fcntl(apps_cmd_pipe[i], F_SETFD, FD_CLOEXEC);
- if (ret < 0) {
- PERROR("fcntl apps_cmd_pipe");
- goto error;
- }
- }
-
-error:
- return ret;
+ return pipe2(apps_cmd_pipe, O_CLOEXEC);
}
/*