+
+end:
+ return ret;
+}
+
+/*
+ * recv_data_sessiond
+ *
+ * Receive data from the sessiond socket.
+ *
+ * On success, return 0
+ * On error, return recv() error code
+ */
+static int recv_data_sessiond(void *buf, size_t len)
+{
+ int ret;
+
+ if (!connected) {
+ ret = -ENOTCONN;
+ goto end;
+ }
+
+ ret = lttcomm_recv_unix_sock(sessiond_socket, buf, len);
+ if (ret < 0) {
+ goto end;
+ }
+
+end:
+ return ret;
+}
+
+/*
+ * ask_sessiond
+ *
+ * Ask the session daemon a specific command
+ * and put the data into buf.
+ *
+ * Return size of data (only payload, not header).
+ */
+static int ask_sessiond(enum lttcomm_command_type lct, void **buf)
+{
+ int ret;
+ size_t size;
+ void *data = NULL;
+
+ lsm.cmd_type = lct;
+
+ /* Send command to session daemon */
+ ret = send_data_sessiond();