Merge branch 'master' of git://git.lttng.org/lttng-tools
authorDavid Goulet <dgoulet@efficios.com>
Fri, 2 Mar 2012 20:19:52 +0000 (15:19 -0500)
committerDavid Goulet <dgoulet@efficios.com>
Fri, 2 Mar 2012 20:19:52 +0000 (15:19 -0500)
1  2 
src/bin/lttng-sessiond/main.c

index 2ef18ae09f5a9291073c6763c863a1e5a610048d,5644cb82d9998b74f55e5a9c13a0ab77cb7d7dde..a4f0d054d0de91eb7b7d36a11a280520eabe91f5
@@@ -17,6 -17,7 +17,6 @@@
   */
  
  #define _GNU_SOURCE
 -#include <fcntl.h>
  #include <getopt.h>
  #include <grp.h>
  #include <limits.h>
@@@ -39,7 -40,6 +39,7 @@@
  
  #include <common/common.h>
  #include <common/compat/poll.h>
 +#include <common/compat/socket.h>
  #include <common/defaults.h>
  #include <common/kernel-consumer/kernel-consumer.h>
  #include <common/ust-consumer/ust-consumer.h>
@@@ -295,22 -295,14 +295,22 @@@ static gid_t allowed_group(void
   */
  static int init_thread_quit_pipe(void)
  {
 -      int ret;
 +      int ret, i;
  
 -      ret = pipe2(thread_quit_pipe, O_CLOEXEC);
 +      ret = pipe(thread_quit_pipe);
        if (ret < 0) {
                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;
  }
@@@ -1473,7 -1465,7 +1473,7 @@@ error
                        PERROR("close");
                }
        }
-       if (clock >= 0) {
+       if (sock >= 0) {
                ret = close(sock);
                if (ret) {
                        PERROR("close");
@@@ -2981,12 -2973,11 +2981,12 @@@ error
  /*
   * Command LTTNG_CREATE_SESSION processed by the client thread.
   */
 -static int cmd_create_session(char *name, char *path, struct ucred *creds)
 +static int cmd_create_session(char *name, char *path, lttng_sock_cred *creds)
  {
        int ret;
  
 -      ret = session_create(name, path, creds->uid, creds->gid);
 +      ret = session_create(name, path, LTTNG_SOCK_GET_UID_CRED(creds),
 +                      LTTNG_SOCK_GET_GID_CRED(creds));
        if (ret != LTTCOMM_OK) {
                goto error;
        }
@@@ -3412,8 -3403,7 +3412,8 @@@ skip_domain
         */
        if (need_tracing_session) {
                if (!session_access_ok(cmd_ctx->session,
 -                              cmd_ctx->creds.uid, cmd_ctx->creds.gid)) {
 +                              LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
 +                              LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds))) {
                        ret = LTTCOMM_EPERM;
                        goto error;
                }
                unsigned int nr_sessions;
  
                session_lock_list();
 -              nr_sessions = lttng_sessions_count(cmd_ctx->creds.uid, cmd_ctx->creds.gid);
 +              nr_sessions = lttng_sessions_count(
 +                              LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
 +                              LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds));
  
                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),
 -                      cmd_ctx->creds.uid, cmd_ctx->creds.gid);
 +                      LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
 +                      LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds));
  
                session_unlock_list();
  
   */
  static int create_kernel_poll_pipe(void)
  {
 -      return pipe2(kernel_poll_pipe, O_CLOEXEC);
 +      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;
  }
  
  /*
   */
  static int create_apps_cmd_pipe(void)
  {
 -      return pipe2(apps_cmd_pipe, O_CLOEXEC);
 +      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;
  }
  
  /*
This page took 0.033516 seconds and 5 git commands to generate.