consumerd: Implement clear stream/session commands
[lttng-tools.git] / src / common / kernel-consumer / kernel-consumer.c
index d82e07fcaacf147cf4d59d8e98119cc3adc326bf..442c49631f9870064bf1f4ec6c0ca542e57329f0 100644 (file)
@@ -1091,6 +1091,49 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
                }
                break;
        }
+       case LTTNG_CONSUMER_CLEAR_CHANNEL:
+       {
+               struct lttng_consumer_channel *channel;
+               uint64_t key = msg.u.clear_channel.key;
+
+               channel = consumer_find_channel(key);
+               if (!channel) {
+                       DBG("Channel %" PRIu64 " not found", key);
+                       ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
+               } else {
+                       ret = lttng_consumer_clear_channel(channel);
+                       if (ret) {
+                               ERR("Clear channel failed");
+                               ret_code = ret;
+                       }
+
+                       health_code_update();
+               }
+               ret = consumer_send_status_msg(sock, ret_code);
+               if (ret < 0) {
+                       /* Somehow, the session daemon is not responding anymore. */
+                       goto end_nosignal;
+               }
+               break;
+       }
+       case LTTNG_CONSUMER_CLEAR_SESSION:
+       {
+               uint64_t session_id = msg.u.clear_session.session_id;
+
+               ret = lttng_consumer_clear_session(session_id);
+               if (ret) {
+                       ERR("Clear session failed session_id %" PRIu64, session_id);
+                       ret_code = ret;
+               }
+
+               health_code_update();
+               ret = consumer_send_status_msg(sock, ret_code);
+               if (ret < 0) {
+                       /* Somehow, the session daemon is not responding anymore. */
+                       goto end_nosignal;
+               }
+               break;
+       }
        default:
                goto end_nosignal;
        }
This page took 0.024998 seconds and 5 git commands to generate.