Add TODOs for session daemon
[lttng-tools.git] / ltt-sessiond / main.c
index e069696b0c621df39fedbb71454bc20bd54006c1..e7ad6f9b140e1c48f05f2befcda5d73fc1ce2803 100644 (file)
@@ -634,6 +634,7 @@ static int create_trace_dir(struct ltt_kernel_session *session)
        /* Create all channel directories */
        cds_list_for_each_entry(chan, &session->channel_list.head, list) {
                DBG("Creating trace directory at %s", chan->pathname);
+               // TODO: recursive create dir
                ret = mkdir(chan->pathname, S_IRWXU | S_IRWXG );
                if (ret < 0) {
                        perror("mkdir trace path");
@@ -648,6 +649,23 @@ error:
        return ret;
 }
 
+/*
+ *  init_kernel_tracer
+ *
+ *  Setup necessary data for kernel tracer action.
+ */
+static void init_kernel_tracer(void)
+{
+       /* Set the global kernel tracer fd */
+       kernel_tracer_fd = open(DEFAULT_KERNEL_TRACER_PATH, O_RDWR);
+       if (kernel_tracer_fd < 0) {
+               WARN("No kernel tracer available");
+               kernel_tracer_fd = 0;
+       }
+
+       DBG("Kernel tracer fd %d", kernel_tracer_fd);
+}
+
 /*
  *     process_client_msg
  *
@@ -690,11 +708,13 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
        case KERNEL_OPEN_METADATA:
        case KERNEL_START_TRACE:
        case KERNEL_STOP_TRACE:
-               /* TODO: reconnect to kernel tracer to check if
-                * it's loadded */
+               /* Kernel tracer check */
                if (kernel_tracer_fd == 0) {
-                       ret = LTTCOMM_KERN_NA;
-                       goto error;
+                       init_kernel_tracer();
+                       if (kernel_tracer_fd == 0) {
+                               ret = LTTCOMM_KERN_NA;
+                               goto error;
+                       }
                }
                break;
        }
@@ -1178,6 +1198,8 @@ static void *thread_manage_clients(void *data)
                        continue;
                }
 
+               // TODO: Validate cmd_ctx including sanity check for security purpose.
+
                /*
                 * This function dispatch the work to the kernel or userspace tracer
                 * libs and fill the lttcomm_lttng_msg data structure of all the needed
@@ -1472,23 +1494,6 @@ error:
        return ret;
 }
 
-/*
- *  init_kernel_tracer
- *
- *  Setup necessary data for kernel tracer action.
- */
-static void init_kernel_tracer(void)
-{
-       /* Set the global kernel tracer fd */
-       kernel_tracer_fd = open(DEFAULT_KERNEL_TRACER_PATH, O_RDWR);
-       if (kernel_tracer_fd < 0) {
-               WARN("No kernel tracer available");
-               kernel_tracer_fd = 0;
-       }
-
-       DBG("Kernel tracer fd %d", kernel_tracer_fd);
-}
-
 /*
  *  set_kconsumerd_sockets
  *
This page took 0.023159 seconds and 4 git commands to generate.