Fix: statements with side-effects in assert statements
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index f0d5c571da18aa3e7752ef2307dfdf0afd12e3a5..3b776c57634fcfa5f05688a2c7b2c8233fb505b7 100644 (file)
@@ -681,34 +681,34 @@ static int list_lttng_kernel_events(char *channel_name,
                event.filter = (unsigned char) !!kevent->filter_expression;
 
                switch (kevent->event->instrumentation) {
-               case LTTNG_KERNEL_TRACEPOINT:
+               case LTTNG_KERNEL_ABI_TRACEPOINT:
                        event.type = LTTNG_EVENT_TRACEPOINT;
                        break;
-               case LTTNG_KERNEL_KRETPROBE:
+               case LTTNG_KERNEL_ABI_KRETPROBE:
                        event.type = LTTNG_EVENT_FUNCTION;
                        memcpy(&event.attr.probe, &kevent->event->u.kprobe,
-                                       sizeof(struct lttng_kernel_kprobe));
+                                       sizeof(struct lttng_kernel_abi_kprobe));
                        break;
-               case LTTNG_KERNEL_KPROBE:
+               case LTTNG_KERNEL_ABI_KPROBE:
                        event.type = LTTNG_EVENT_PROBE;
                        memcpy(&event.attr.probe, &kevent->event->u.kprobe,
-                                       sizeof(struct lttng_kernel_kprobe));
+                                       sizeof(struct lttng_kernel_abi_kprobe));
                        break;
-               case LTTNG_KERNEL_UPROBE:
+               case LTTNG_KERNEL_ABI_UPROBE:
                        event.type = LTTNG_EVENT_USERSPACE_PROBE;
                        break;
-               case LTTNG_KERNEL_FUNCTION:
+               case LTTNG_KERNEL_ABI_FUNCTION:
                        event.type = LTTNG_EVENT_FUNCTION;
                        memcpy(&event.attr.ftrace, &kevent->event->u.ftrace,
-                                       sizeof(struct lttng_kernel_function));
+                                       sizeof(struct lttng_kernel_abi_function));
                        break;
-               case LTTNG_KERNEL_NOOP:
+               case LTTNG_KERNEL_ABI_NOOP:
                        event.type = LTTNG_EVENT_NOOP;
                        break;
-               case LTTNG_KERNEL_SYSCALL:
+               case LTTNG_KERNEL_ABI_SYSCALL:
                        event.type = LTTNG_EVENT_SYSCALL;
                        break;
-               case LTTNG_KERNEL_ALL:
+               case LTTNG_KERNEL_ABI_ALL:
                        /* fall-through. */
                default:
                        assert(0);
@@ -3241,6 +3241,7 @@ void cmd_destroy_session_reply(const struct ltt_session *session,
        payload_size_before_location = payload.size;
        comm_ret = lttng_trace_archive_location_serialize(location,
                        &payload);
+       lttng_trace_archive_location_put(location);
        if (comm_ret < 0) {
                ERR("Failed to serialize the location of the trace archive produced during the destruction of session \"%s\"",
                                session->name);
@@ -4631,11 +4632,11 @@ end:
        return ret_code;
 }
 
-int cmd_list_triggers(struct command_ctx *cmd_ctx,
+enum lttng_error_code cmd_list_triggers(struct command_ctx *cmd_ctx,
                struct notification_thread_handle *notification_thread,
                struct lttng_triggers **return_triggers)
 {
-       int ret = 0;
+       int ret;
        enum lttng_error_code ret_code;
        struct lttng_triggers *triggers = NULL;
 
@@ -4643,16 +4644,21 @@ int cmd_list_triggers(struct command_ctx *cmd_ctx,
        ret_code = notification_thread_command_list_triggers(
                        notification_thread, cmd_ctx->creds.uid, &triggers);
        if (ret_code != LTTNG_OK) {
-               ret = ret_code;
+               goto end;
+       }
+
+       ret = lttng_triggers_remove_hidden_triggers(triggers);
+       if (ret) {
+               ret_code = LTTNG_ERR_UNK;
                goto end;
        }
 
        *return_triggers = triggers;
        triggers = NULL;
-       ret = LTTNG_OK;
+       ret_code = LTTNG_OK;
 end:
        lttng_triggers_destroy(triggers);
-       return ret;
+       return ret_code;
 }
 
 enum lttng_error_code cmd_execute_error_query(const struct lttng_credentials *cmd_creds,
@@ -4662,7 +4668,7 @@ enum lttng_error_code cmd_execute_error_query(const struct lttng_credentials *cm
 {
        enum lttng_error_code ret_code;
        const struct lttng_trigger *query_target_trigger;
-       struct lttng_action *query_target_action = NULL;
+       const struct lttng_action *query_target_action = NULL;
        struct lttng_trigger *matching_trigger = NULL;
        const char *trigger_name;
        uid_t trigger_owner;
@@ -4673,6 +4679,10 @@ enum lttng_error_code cmd_execute_error_query(const struct lttng_credentials *cm
        case LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER:
                query_target_trigger = lttng_error_query_trigger_borrow_target(query);
                break;
+       case LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION:
+               query_target_trigger =
+                               lttng_error_query_condition_borrow_target(query);
+               break;
        case LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION:
                query_target_trigger = lttng_error_query_action_borrow_trigger_target(
                                query);
@@ -4748,6 +4758,21 @@ enum lttng_error_code cmd_execute_error_query(const struct lttng_credentials *cm
                }
 
                break;
+       case LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION:
+       {
+               trigger_status = lttng_trigger_condition_add_error_results(
+                               matching_trigger, results);
+
+               switch (trigger_status) {
+               case LTTNG_TRIGGER_STATUS_OK:
+                       break;
+               default:
+                       ret_code = LTTNG_ERR_UNK;
+                       goto end;
+               }
+
+               break;
+       }
        case LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION:
        {
                const enum lttng_action_status action_status =
@@ -5028,6 +5053,11 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                                consumer_copy_output(snapshot_output->consumer);
                strcpy(snapshot_kernel_consumer_output->chunk_path,
                        snapshot_chunk_name);
+
+               /* Copy the original domain subdir. */
+               strcpy(snapshot_kernel_consumer_output->domain_subdir,
+                               original_kernel_consumer_output->domain_subdir);
+
                ret = consumer_copy_sockets(snapshot_kernel_consumer_output,
                                original_kernel_consumer_output);
                if (ret < 0) {
@@ -5050,6 +5080,11 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                                consumer_copy_output(snapshot_output->consumer);
                strcpy(snapshot_ust_consumer_output->chunk_path,
                        snapshot_chunk_name);
+
+               /* Copy the original domain subdir. */
+               strcpy(snapshot_ust_consumer_output->domain_subdir,
+                               original_ust_consumer_output->domain_subdir);
+
                ret = consumer_copy_sockets(snapshot_ust_consumer_output,
                                original_ust_consumer_output);
                if (ret < 0) {
This page took 0.025935 seconds and 4 git commands to generate.