Add close unix socket function to libcomm API
[lttng-tools.git] / liblttsessiondcomm / liblttsessiondcomm.h
index b52d1dd5b5c19655e617967e773d49ef9d14a15f..83dcdc377ddbeaeebcc7eb35d8a54389185efc99 100644 (file)
 /* Queue size of listen(2) */
 #define MAX_LISTEN 10
 
-/* Maximum amount of PID the list_apps command
- * can send back to the lttng client.
- */
-#define MAX_APPS_PID 20
-
 /* Get the error code index from 0 since
  * LTTCOMM_OK start at 1000
  */
-#define LTTCOMM_ERR_INDEX(code) code - LTTCOMM_OK
+#define LTTCOMM_ERR_INDEX(code) (code - LTTCOMM_OK)
 
 enum lttcomm_command_type {
        LTTNG_CREATE_SESSION,
@@ -78,6 +73,9 @@ enum lttcomm_return_code {
        LTTCOMM_SESSION_FAIL,   /* Create session fail */
        LTTCOMM_START_FAIL,             /* Start tracing fail */
        LTTCOMM_LIST_FAIL,              /* Listing apps fail */
+       LTTCOMM_NO_APPS,                /* No traceable application */
+       LTTCOMM_NO_SESS,                /* No sessions available */
+       LTTCOMM_FATAL,                  /* Session daemon had a fatal error */
        LTTCOMM_NR,                             /* Last element */
 };
 
@@ -118,7 +116,11 @@ struct lttcomm_session_msg {
 };
 
 /*
- * Data structure for the lttng client response
+ * Data structure for the lttng client response.
+ *
+ * This data structure is the control struct use in
+ * the header of the transmission. NEVER put variable
+ * size data in here.
  */
 struct lttcomm_lttng_msg {
        enum lttcomm_command_type cmd_type;
@@ -126,19 +128,14 @@ struct lttcomm_lttng_msg {
        uuid_t session_id;
        pid_t pid;
        char trace_name[NAME_MAX];
-       union {
-               /* UST_LIST_APPS */
-               struct {
-                       size_t size;
-                       pid_t pids[MAX_APPS_PID];
-               } list_apps;
-       } u;
+       unsigned int size_payload;
 };
 
 extern int lttcomm_create_unix_sock(const char *pathname);
 extern int lttcomm_connect_unix_sock(const char *pathname);
 extern int lttcomm_accept_unix_sock(int sock);
 extern int lttcomm_listen_unix_sock(int sock);
+extern int lttcomm_close_unix_sock(int sock);
 extern ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len);
 extern ssize_t lttcomm_send_unix_sock(int sock, void *buf, size_t len);
 extern const char *lttcomm_get_readable_code(enum lttcomm_return_code code);
This page took 0.023815 seconds and 4 git commands to generate.