Rename C++ header files to .hpp
[lttng-tools.git] / src / bin / lttng-sessiond / notification-thread-events.cpp
index 6f449fc638cef0df78f88c8abcc5d575f6376ad6..67fca2a357bb3fcac0814d150313e49ae38532a2 100644 (file)
@@ -6,46 +6,46 @@
  */
 
 #include "lttng/action/action.h"
-#include "lttng/trigger/trigger-internal.h"
+#include "lttng/trigger/trigger-internal.hpp"
 #define _LGPL_SOURCE
 #include <urcu.h>
 #include <urcu/rculfhash.h>
 
-#include <common/defaults.h>
-#include <common/error.h>
-#include <common/futex.h>
-#include <common/unix.h>
-#include <common/dynamic-buffer.h>
-#include <common/hashtable/utils.h>
-#include <common/sessiond-comm/sessiond-comm.h>
-#include <common/macros.h>
+#include <common/defaults.hpp>
+#include <common/error.hpp>
+#include <common/futex.hpp>
+#include <common/unix.hpp>
+#include <common/dynamic-buffer.hpp>
+#include <common/hashtable/utils.hpp>
+#include <common/sessiond-comm/sessiond-comm.hpp>
+#include <common/macros.hpp>
 #include <lttng/condition/condition.h>
-#include <lttng/action/action-internal.h>
-#include <lttng/action/list-internal.h>
-#include <lttng/domain-internal.h>
-#include <lttng/notification/notification-internal.h>
-#include <lttng/condition/condition-internal.h>
-#include <lttng/condition/buffer-usage-internal.h>
-#include <lttng/condition/session-consumed-size-internal.h>
-#include <lttng/condition/session-rotation-internal.h>
-#include <lttng/condition/event-rule-matches-internal.h>
-#include <lttng/domain-internal.h>
-#include <lttng/notification/channel-internal.h>
-#include <lttng/trigger/trigger-internal.h>
-#include <lttng/event-rule/event-rule-internal.h>
+#include <lttng/action/action-internal.hpp>
+#include <lttng/action/list-internal.hpp>
+#include <lttng/domain-internal.hpp>
+#include <lttng/notification/notification-internal.hpp>
+#include <lttng/condition/condition-internal.hpp>
+#include <lttng/condition/buffer-usage-internal.hpp>
+#include <lttng/condition/session-consumed-size-internal.hpp>
+#include <lttng/condition/session-rotation-internal.hpp>
+#include <lttng/condition/event-rule-matches-internal.hpp>
+#include <lttng/domain-internal.hpp>
+#include <lttng/notification/channel-internal.hpp>
+#include <lttng/trigger/trigger-internal.hpp>
+#include <lttng/event-rule/event-rule-internal.hpp>
 
 #include <time.h>
 #include <unistd.h>
 #include <inttypes.h>
 #include <fcntl.h>
 
-#include "condition-internal.h"
-#include "event-notifier-error-accounting.h"
-#include "notification-thread.h"
-#include "notification-thread-events.h"
-#include "notification-thread-commands.h"
-#include "lttng-sessiond.h"
-#include "kernel.h"
+#include "condition-internal.hpp"
+#include "event-notifier-error-accounting.hpp"
+#include "notification-thread.hpp"
+#include "notification-thread-events.hpp"
+#include "notification-thread-commands.hpp"
+#include "lttng-sessiond.hpp"
+#include "kernel.hpp"
 
 #define CLIENT_POLL_MASK_IN (LPOLLIN | LPOLLERR | LPOLLHUP | LPOLLRDHUP)
 #define CLIENT_POLL_MASK_IN_OUT (CLIENT_POLL_MASK_IN | LPOLLOUT)
@@ -1031,8 +1031,15 @@ int evaluate_condition_for_client(const struct lttng_trigger *trigger,
        struct lttng_evaluation *evaluation = NULL;
        struct notification_client_list client_list = {
                .lock = PTHREAD_MUTEX_INITIALIZER,
+               .ref = {},
+               .condition = NULL,
+               .triggers_list = {},
+               .clients_list = {},
+               .notification_trigger_clients_ht = NULL,
+               .notification_trigger_clients_ht_node = {},
+               .rcu_node = {},
        };
-       struct notification_client_list_element client_list_element = { 0 };
+       struct notification_client_list_element client_list_element = {};
        uid_t object_uid = 0;
        gid_t object_gid = 0;
 
@@ -1279,8 +1286,7 @@ void free_notification_client_rcu(struct rcu_head *node)
 }
 
 static
-void notification_client_destroy(struct notification_client *client,
-               struct notification_thread_state *state)
+void notification_client_destroy(struct notification_client *client)
 {
        if (!client) {
                return;
@@ -1313,6 +1319,8 @@ struct notification_client *get_client_from_socket(int socket,
        struct cds_lfht_node *node;
        struct notification_client *client = NULL;
 
+       ASSERT_RCU_READ_LOCKED();
+
        cds_lfht_lookup(state->client_socket_ht,
                        hash_client_socket(socket),
                        match_client_socket,
@@ -1341,6 +1349,8 @@ struct notification_client *get_client_from_id(notification_client_id id,
        struct cds_lfht_node *node;
        struct notification_client *client = NULL;
 
+       ASSERT_RCU_READ_LOCKED();
+
        cds_lfht_lookup(state->client_id_ht,
                        hash_client_id(id),
                        match_client_id,
@@ -1456,6 +1466,8 @@ struct lttng_session_trigger_list *get_session_trigger_list(
        struct cds_lfht_node *node;
        struct cds_lfht_iter iter;
 
+       ASSERT_RCU_READ_LOCKED();
+
        cds_lfht_lookup(state->session_triggers_ht,
                        hash_key_str(session_name, lttng_ht_seed),
                        match_session_trigger_list,
@@ -2059,7 +2071,7 @@ int drain_event_notifier_notification_pipe(
                struct notification_thread_state *state,
                int pipe, enum lttng_domain_type domain)
 {
-       struct lttng_poll_event events = {0};
+       struct lttng_poll_event events = {};
        int ret;
 
        ret = lttng_poll_create(&events, 1, LTTNG_CLOEXEC);
@@ -2227,7 +2239,7 @@ end:
 }
 
 static int handle_notification_thread_command_list_triggers(
-               struct notification_thread_handle *handle,
+               struct notification_thread_handle *handle __attribute__((unused)),
                struct notification_thread_state *state,
                uid_t client_uid,
                struct lttng_triggers **triggers,
@@ -2418,6 +2430,8 @@ int bind_trigger_to_matching_session(struct lttng_trigger *trigger,
        const char *session_name;
        struct lttng_session_trigger_list *trigger_list;
 
+       ASSERT_RCU_READ_LOCKED();
+
        condition = lttng_trigger_get_const_condition(trigger);
        switch (lttng_condition_get_type(condition)) {
        case LTTNG_CONDITION_TYPE_SESSION_ROTATION_ONGOING:
@@ -2464,6 +2478,8 @@ int bind_trigger_to_matching_channels(struct lttng_trigger *trigger,
        struct cds_lfht_iter iter;
        struct channel_info *channel;
 
+       ASSERT_RCU_READ_LOCKED();
+
        cds_lfht_for_each_entry(state->channels_ht, &iter, channel,
                        channels_ht_node) {
                struct lttng_trigger_list_element *trigger_list_element;
@@ -3386,7 +3402,7 @@ int handle_notification_thread_client_connect(
        return ret;
 
 error:
-       notification_client_destroy(client, state);
+       notification_client_destroy(client);
        return ret;
 }
 
@@ -3402,6 +3418,8 @@ int notification_thread_client_disconnect(
        int ret;
        struct lttng_condition_list_element *condition_list_element, *tmp;
 
+       ASSERT_RCU_READ_LOCKED();
+
        /* Acquire the client lock to disable its communication atomically. */
        pthread_mutex_lock(&client->lock);
        client->communication.active = false;
@@ -3426,7 +3444,7 @@ int notification_thread_client_disconnect(
         * Client no longer accessible to other threads (through the
         * client lists).
         */
-       notification_client_destroy(client, state);
+       notification_client_destroy(client);
        return ret;
 }
 
@@ -3689,6 +3707,7 @@ int client_send_command_reply(struct notification_client *client,
        struct lttng_notification_channel_message msg = {
                .type = (int8_t) LTTNG_NOTIFICATION_CHANNEL_MESSAGE_TYPE_COMMAND_REPLY,
                .size = sizeof(reply),
+               .fds = 0,
        };
        char buffer[sizeof(msg) + sizeof(reply)];
        enum client_transmission_status transmission_status;
@@ -3734,7 +3753,7 @@ error:
 
 static
 int client_handle_message_unknown(struct notification_client *client,
-               struct notification_thread_state *state)
+               struct notification_thread_state *state __attribute__((unused)))
 {
        int ret;
        /*
@@ -3793,6 +3812,7 @@ int client_handle_message_handshake(struct notification_client *client,
        const struct lttng_notification_channel_message msg_header = {
                        .type = LTTNG_NOTIFICATION_CHANNEL_MESSAGE_TYPE_HANDSHAKE,
                        .size = sizeof(handshake_reply),
+                       .fds = 0,
        };
        enum lttng_notification_channel_status status =
                        LTTNG_NOTIFICATION_CHANNEL_STATUS_OK;
@@ -4174,7 +4194,7 @@ bool evaluate_session_consumed_size_condition(
 static
 int evaluate_buffer_condition(const struct lttng_condition *condition,
                struct lttng_evaluation **evaluation,
-               const struct notification_thread_state *state,
+               const struct notification_thread_state *state __attribute__((unused)),
                const struct channel_state_sample *previous_sample,
                const struct channel_state_sample *latest_sample,
                uint64_t previous_session_consumed_total,
@@ -4263,6 +4283,8 @@ int client_notification_overflow(struct notification_client *client)
        int ret = 0;
        const struct lttng_notification_channel_message msg = {
                .type = (int8_t) LTTNG_NOTIFICATION_CHANNEL_MESSAGE_TYPE_NOTIFICATION_DROPPED,
+               .size = 0,
+               .fds = 0,
        };
 
        ASSERT_LOCKED(client->lock);
@@ -4367,6 +4389,8 @@ int notification_client_list_send_evaluation(
        };
        struct lttng_notification_channel_message msg_header = {
                .type = (int8_t) LTTNG_NOTIFICATION_CHANNEL_MESSAGE_TYPE_NOTIFICATION,
+               .size = 0,
+               .fds = 0,
        };
        const struct lttng_credentials *trigger_creds =
                        lttng_trigger_get_credentials(trigger);
This page took 0.027628 seconds and 4 git commands to generate.