Fix: sessiond: notification: unreachable code in switch-case
[lttng-tools.git] / src / bin / lttng-sessiond / notification-thread-events.c
index d620159246a54368d44fa9b9391f4007212c54f6..833b550f87067672a682ccc99bcec710361c90be 100644 (file)
@@ -331,6 +331,38 @@ int match_session(struct cds_lfht_node *node, const void *key)
        return !strcmp(session_info->name, name);
 }
 
+static
+const char *notification_command_type_str(
+               enum notification_thread_command_type type)
+{
+       switch (type) {
+       case NOTIFICATION_COMMAND_TYPE_REGISTER_TRIGGER:
+               return "REGISTER_TRIGGER";
+       case NOTIFICATION_COMMAND_TYPE_UNREGISTER_TRIGGER:
+               return "UNREGISTER_TRIGGER";
+       case NOTIFICATION_COMMAND_TYPE_ADD_CHANNEL:
+               return "ADD_CHANNEL";
+       case NOTIFICATION_COMMAND_TYPE_REMOVE_CHANNEL:
+               return "REMOVE_CHANNEL";
+       case NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_ONGOING:
+               return "SESSION_ROTATION_ONGOING";
+       case NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_COMPLETED:
+               return "SESSION_ROTATION_COMPLETED";
+       case NOTIFICATION_COMMAND_TYPE_ADD_TRACER_EVENT_SOURCE:
+               return "ADD_TRACER_EVENT_SOURCE";
+       case NOTIFICATION_COMMAND_TYPE_REMOVE_TRACER_EVENT_SOURCE:
+               return "REMOVE_TRACER_EVENT_SOURCE";
+       case NOTIFICATION_COMMAND_TYPE_LIST_TRIGGERS:
+               return "LIST_TRIGGERS";
+       case NOTIFICATION_COMMAND_TYPE_QUIT:
+               return "QUIT";
+       case NOTIFICATION_COMMAND_TYPE_CLIENT_COMMUNICATION_UPDATE:
+               return "CLIENT_COMMUNICATION_UPDATE";
+       default:
+               abort();
+       }
+}
+
 /*
  * Match trigger based on name and credentials only.
  * Name duplication is NOT allowed for the same uid.
@@ -2578,11 +2610,15 @@ int handle_notification_thread_command_register_trigger(
                ret = evaluate_session_condition_for_client(condition, state,
                                &evaluation, &object_uid,
                                &object_gid);
+               LTTNG_OPTIONAL_SET(&object_creds.uid, object_uid);
+               LTTNG_OPTIONAL_SET(&object_creds.gid, object_gid);
                break;
        case LTTNG_OBJECT_TYPE_CHANNEL:
                ret = evaluate_channel_condition_for_client(condition, state,
                                &evaluation, &object_uid,
                                &object_gid);
+               LTTNG_OPTIONAL_SET(&object_creds.uid, object_uid);
+               LTTNG_OPTIONAL_SET(&object_creds.gid, object_gid);
                break;
        case LTTNG_OBJECT_TYPE_NONE:
                ret = 0;
@@ -2598,9 +2634,6 @@ int handle_notification_thread_command_register_trigger(
                goto error_put_client_list;
        }
 
-       LTTNG_OPTIONAL_SET(&object_creds.uid, object_uid);
-       LTTNG_OPTIONAL_SET(&object_creds.gid, object_gid);
-
        DBG("Newly registered trigger's condition evaluated to %s",
                        evaluation ? "true" : "false");
        if (!evaluation) {
@@ -2802,22 +2835,22 @@ int handle_notification_thread_command(
                        struct notification_thread_command, cmd_list_node);
        cds_list_del(&cmd->cmd_list_node);
        pthread_mutex_unlock(&handle->cmd_queue.lock);
+
+       DBG("[notification-thread] Received `%s` command",
+                       notification_command_type_str(cmd->type));
        switch (cmd->type) {
        case NOTIFICATION_COMMAND_TYPE_REGISTER_TRIGGER:
-               DBG("[notification-thread] Received register trigger command");
                ret = handle_notification_thread_command_register_trigger(state,
                                cmd->parameters.register_trigger.trigger,
                                &cmd->reply_code);
                break;
        case NOTIFICATION_COMMAND_TYPE_UNREGISTER_TRIGGER:
-               DBG("[notification-thread] Received unregister trigger command");
                ret = handle_notification_thread_command_unregister_trigger(
                                state,
                                cmd->parameters.unregister_trigger.trigger,
                                &cmd->reply_code);
                break;
        case NOTIFICATION_COMMAND_TYPE_ADD_CHANNEL:
-               DBG("[notification-thread] Received add channel command");
                ret = handle_notification_thread_command_add_channel(
                                state,
                                cmd->parameters.add_channel.session.name,
@@ -2830,7 +2863,6 @@ int handle_notification_thread_command(
                                &cmd->reply_code);
                break;
        case NOTIFICATION_COMMAND_TYPE_REMOVE_CHANNEL:
-               DBG("[notification-thread] Received remove channel command");
                ret = handle_notification_thread_command_remove_channel(
                                state, cmd->parameters.remove_channel.key,
                                cmd->parameters.remove_channel.domain,
@@ -2838,9 +2870,6 @@ int handle_notification_thread_command(
                break;
        case NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_ONGOING:
        case NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_COMPLETED:
-               DBG("[notification-thread] Received session rotation %s command",
-                               cmd->type == NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_ONGOING ?
-                               "ongoing" : "completed");
                ret = handle_notification_thread_command_session_rotation(
                                state,
                                cmd->type,
@@ -2879,7 +2908,6 @@ int handle_notification_thread_command(
                break;
        }
        case NOTIFICATION_COMMAND_TYPE_QUIT:
-               DBG("[notification-thread] Received quit command");
                cmd->reply_code = LTTNG_OK;
                ret = 1;
                goto end;
This page took 0.024158 seconds and 4 git commands to generate.