Fix: sessiond: rotation thread: fatal error when not finding a session
[lttng-tools.git] / src / bin / lttng-sessiond / notification-thread-internal.h
index e6467dc27cb107695f4445888ee52f8abf0d27fd..9e7059acf0708749828891870765448ba35e199a 100644 (file)
@@ -113,8 +113,10 @@ struct notification_client_list_element {
 struct notification_client_list {
        pthread_mutex_t lock;
        struct urcu_ref ref;
-       const struct lttng_trigger *trigger;
-       struct cds_list_head list;
+       struct lttng_condition *condition;
+       /* List of triggers that have an identical condition than `condition`. */
+       struct cds_list_head triggers_list;
+       struct cds_list_head clients_list;
        /* Weak reference to container. */
        struct cds_lfht *notification_trigger_clients_ht;
        struct cds_lfht_node notification_trigger_clients_ht_node;
@@ -140,6 +142,7 @@ struct notification_client {
        uint8_t major, minor;
        uid_t uid;
        gid_t gid;
+       bool is_sessiond;
        /*
         * Indicates if the credentials and versions of the client have been
         * checked.
@@ -222,10 +225,8 @@ enum client_transmission_status {
        CLIENT_TRANSMISSION_STATUS_ERROR,
 };
 
-LTTNG_HIDDEN
 bool notification_client_list_get(struct notification_client_list *list);
 
-LTTNG_HIDDEN
 void notification_client_list_put(struct notification_client_list *list);
 
 /* Only returns a non-zero value if a fatal error occurred. */
@@ -234,17 +235,14 @@ typedef int (*report_client_transmission_result_cb)(
                enum client_transmission_status status,
                void *user_data);
 
-LTTNG_HIDDEN
 int notification_client_list_send_evaluation(
                struct notification_client_list *list,
-               const struct lttng_condition *condition,
+               const struct lttng_trigger *trigger,
                const struct lttng_evaluation *evaluation,
-               const struct lttng_credentials *trigger_creds,
                const struct lttng_credentials *source_object_creds,
                report_client_transmission_result_cb client_report,
                void *user_data);
 
-LTTNG_HIDDEN
 int notification_thread_client_communication_update(
                struct notification_thread_handle *handle,
                notification_client_id id,
@@ -253,14 +251,12 @@ int notification_thread_client_communication_update(
 /*
  * Takes ownership of the payload if present.
  */
-LTTNG_HIDDEN
 struct lttng_event_notifier_notification *lttng_event_notifier_notification_create(
                uint64_t tracer_token,
                enum lttng_domain_type domain,
                char *payload,
                size_t payload_size);
 
-LTTNG_HIDDEN
 void lttng_event_notifier_notification_destroy(
                struct lttng_event_notifier_notification *event_notifier_notification);
 
This page took 0.024333 seconds and 4 git commands to generate.