#define LTTNG_SESSIOND_COMM_MAX_LISTEN 64
/* Maximum number of FDs that can be sent over a Unix socket */
-#define LTTCOMM_MAX_SEND_FDS 4
+#if defined(__linux__)
+/* Based on the kernel's SCM_MAX_FD which is 253 since 2.6.38 (255 before) */
+#define LTTCOMM_MAX_SEND_FDS 253
+#else
+#define LTTCOMM_MAX_SEND_FDS 16
+#endif
/*
* Get the error code index from 0 since LTTCOMM_OK start at 1000
LTTCOMM_CONSUMERD_TRACE_CHUNK_EXISTS_REMOTE,/* Trace chunk exists on relay daemon. */
LTTCOMM_CONSUMERD_UNKNOWN_TRACE_CHUNK, /* Unknown trace chunk. */
LTTCOMM_CONSUMERD_RELAYD_CLEAR_DISALLOWED, /* Relayd does not accept clear command. */
+ LTTCOMM_CONSUMERD_UNKNOWN_ERROR, /* Unknown error. */
/* MUST be last element */
LTTCOMM_NR, /* Last element */
/* An lttng_session_descriptor follows. */
} LTTNG_PACKED create_session;
} u;
+ /* Count of fds sent. */
+ uint32_t fd_count;
} LTTNG_PACKED;
#define LTTNG_FILTER_MAX_LEN 65536
uint32_t pid; /* pid_t */
uint32_t cmd_header_size;
uint32_t data_size;
+ uint32_t fd_count;
} LTTNG_PACKED;
struct lttcomm_lttng_output_id {
struct {
uint64_t key;
} LTTNG_PACKED clear_channel;
+ struct {
+ uint64_t key;
+ } LTTNG_PACKED open_channel_packets;
} u;
} LTTNG_PACKED;