Fix: sessiond: abort called on undefined client command
[lttng-tools.git] / src / common / sessiond-comm / sessiond-comm.h
index a4ea96315ebf5769823ac85acc3e71f6a301a589..bd4611ef1664b90f5d63a98049234dca2d048b53 100644 (file)
@@ -54,6 +54,7 @@
 #define LTTCOMM_ERR_INDEX(code) (code - LTTCOMM_CONSUMERD_COMMAND_SOCK_READY)
 
 enum lttcomm_sessiond_command {
+       LTTCOMM_SESSIOND_COMMAND_MIN                    = -1,
        /* Tracer command */
        LTTNG_ADD_CONTEXT                               = 0,
        /* LTTNG_CALIBRATE used to be here */
@@ -108,8 +109,15 @@ enum lttcomm_sessiond_command {
        LTTNG_CLEAR_SESSION                             = 50,
        LTTNG_LIST_TRIGGERS                             = 51,
        LTTNG_EXECUTE_ERROR_QUERY                       = 52,
+       LTTCOMM_SESSIOND_COMMAND_MAX,
 };
 
+static inline
+bool lttcomm_sessiond_command_is_valid(enum lttcomm_sessiond_command cmd)
+{
+       return cmd > LTTCOMM_SESSIOND_COMMAND_MIN && cmd < LTTCOMM_SESSIOND_COMMAND_MAX;
+}
+
 static inline
 const char *lttcomm_sessiond_command_str(enum lttcomm_sessiond_command cmd)
 {
@@ -380,36 +388,11 @@ struct lttcomm_session_msg {
                /* Event data */
                struct {
                        char channel_name[LTTNG_SYMBOL_NAME_LEN];
-                       struct lttng_event event;
-                       /* Length of following filter expression. */
-                       uint32_t expression_len;
-                       /* Length of following bytecode for filter. */
-                       uint32_t bytecode_len;
-                       /* Exclusion count (fixed-size strings). */
-                       uint32_t exclusion_count;
-                       /* Userspace probe location size. */
-                       uint32_t userspace_probe_location_len;
-                       /*
-                        * After this structure, the following variable-length
-                        * items are transmitted:
-                        * - char exclusion_names[LTTNG_SYMBOL_NAME_LEN][exclusion_count]
-                        * - char filter_expression[expression_len]
-                        * - unsigned char filter_bytecode[bytecode_len]
-                        */
+                       uint32_t length;
                } LTTNG_PACKED enable;
                struct {
                        char channel_name[LTTNG_SYMBOL_NAME_LEN];
-                       struct lttng_event event;
-                       /* Length of following filter expression. */
-                       uint32_t expression_len;
-                       /* Length of following bytecode for filter. */
-                       uint32_t bytecode_len;
-                       /*
-                        * After this structure, the following variable-length
-                        * items are transmitted:
-                        * - unsigned char filter_expression[expression_len]
-                        * - unsigned char filter_bytecode[bytecode_len]
-                        */
+                       uint32_t length;
                } LTTNG_PACKED disable;
                /* Create channel */
                struct {
@@ -418,9 +401,7 @@ struct lttcomm_session_msg {
                /* Context */
                struct {
                        char channel_name[LTTNG_SYMBOL_NAME_LEN];
-                       struct lttng_event_context ctx;
-                       uint32_t provider_name_len;
-                       uint32_t context_name_len;
+                       uint32_t length;
                } LTTNG_PACKED context;
                /* Use by register_consumer */
                struct {
@@ -551,14 +532,6 @@ struct lttng_event_exclusion {
 #define LTTNG_EVENT_EXCLUSION_NAME_AT(_exclusion, _i) \
        (&(_exclusion)->names[_i][0])
 
-/*
- * Event command header.
- */
-struct lttcomm_event_command_header {
-       /* Number of events */
-       uint32_t nb_events;
-} LTTNG_PACKED;
-
 /*
  * Listing command header.
  */
This page took 0.027669 seconds and 4 git commands to generate.