Extend API and remove lttng_uri from lttng.h
[lttng-tools.git] / src / bin / lttng-sessiond / session.c
index f9d20cc56dd8ac6bff654f676aa94e2e6c089350..e445363ea03d214d90a4f4ded762ad9593d818b1 100644 (file)
@@ -45,7 +45,7 @@
 static struct ltt_session_list ltt_session_list = {
        .head = CDS_LIST_HEAD_INIT(ltt_session_list.head),
        .lock = PTHREAD_MUTEX_INITIALIZER,
-       .count = 0,
+       .next_uuid = 0,
 };
 
 /*
@@ -57,7 +57,7 @@ static struct ltt_session_list ltt_session_list = {
 static unsigned int add_session_list(struct ltt_session *ls)
 {
        cds_list_add(&ls->list, &ltt_session_list.head);
-       return ++ltt_session_list.count;
+       return ltt_session_list.next_uuid++;
 }
 
 /*
@@ -68,10 +68,6 @@ static unsigned int add_session_list(struct ltt_session *ls)
 static void del_session_list(struct ltt_session *ls)
 {
        cds_list_del(&ls->list);
-       /* Sanity check */
-       if (ltt_session_list.count > 0) {
-               ltt_session_list.count--;
-       }
 }
 
 /*
@@ -192,10 +188,11 @@ int session_create(char *name, char *path, uid_t uid, gid_t gid)
                        ret = LTTCOMM_FATAL;
                        goto error_asprintf;
                }
+               new_session->start_consumer = 1;
        } else {
-               ERR("No session path given");
-               ret = LTTCOMM_FATAL;
-               goto error;
+               /* No path indicates that there is no use for a consumer. */
+               new_session->start_consumer = 0;
+               new_session->path[0] = '\0';
        }
 
        /* Init kernel session */
@@ -208,7 +205,7 @@ int session_create(char *name, char *path, uid_t uid, gid_t gid)
        new_session->uid = uid;
        new_session->gid = gid;
 
-       /* Mkdir if we have a valid path length */
+       /* Mkdir if we have a valid path and length */
        if (strlen(new_session->path) > 0) {
                ret = run_as_mkdir_recursive(new_session->path, S_IRWXU | S_IRWXG,
                                new_session->uid, new_session->gid);
@@ -226,9 +223,13 @@ int session_create(char *name, char *path, uid_t uid, gid_t gid)
        new_session->id = add_session_list(new_session);
        session_unlock_list();
 
-       DBG("Tracing session %s created in %s with ID %u by UID %d GID %d",
-               name, path, new_session->id,
-               new_session->uid, new_session->gid);
+       /*
+        * Consumer is let to NULL since the create_session_uri command will set it
+        * up and, if valid, assign it to the session.
+        */
+
+       DBG("Tracing session %s created in %s with ID %u by UID %d GID %d", name,
+                       path, new_session->id, new_session->uid, new_session->gid);
 
        return LTTCOMM_OK;
 
This page took 0.024686 seconds and 5 git commands to generate.