[ LTTCOMM_ERR_INDEX(LTTCOMM_SESS_NOT_FOUND) ] = "Session name not found",
[ LTTCOMM_ERR_INDEX(LTTCOMM_NO_TRACE) ] = "No trace found",
[ LTTCOMM_ERR_INDEX(LTTCOMM_FATAL) ] = "Fatal error of the session daemon",
- [ LTTCOMM_ERR_INDEX(LTTCOMM_CREATE_FAIL) ] = "Create trace failed",
+ [ LTTCOMM_ERR_INDEX(LTTCOMM_CREATE_DIR_FAIL) ] = "Create directory failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_START_FAIL) ] = "Start trace failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_STOP_FAIL) ] = "Stop trace failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_NO_TRACEABLE) ] = "App is not traceable",
[ LTTCOMM_ERR_INDEX(LTTCOMM_APP_NOT_FOUND) ] = "Application not found",
[ LTTCOMM_ERR_INDEX(LTTCOMM_EPERM) ] = "Permission denied",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_NA) ] = "Kernel tracer not available",
+ [ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_VERSION) ] = "Kernel tracer version is not compatible",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_EVENT_EXIST) ] = "Kernel event already exists",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_SESS_FAIL) ] = "Kernel create session failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_CHAN_FAIL) ] = "Kernel create channel failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_DIR_EXIST) ] = "Kernel trace directory already exist",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_NO_SESSION) ] = "No kernel session found",
[ LTTCOMM_ERR_INDEX(LTTCOMM_KERN_LIST_FAIL) ] = "Listing kernel events failed",
+ [ LTTCOMM_ERR_INDEX(LTTCOMM_UST_CALIBRATE_FAIL) ] = "UST calibration failed",
+ [ LTTCOMM_ERR_INDEX(LTTCOMM_UST_VERSION) ] = "UST tracer version is not compatible",
[ LTTCOMM_ERR_INDEX(LTTCOMM_UST_SESS_FAIL) ] = "UST create session failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_UST_CHAN_FAIL) ] = "UST create channel failed",
[ LTTCOMM_ERR_INDEX(LTTCOMM_UST_CHAN_EXIST) ] = "UST channel already exist",
[ LTTCOMM_ERR_INDEX(LTTCOMM_UST_EVENT_EXIST) ] = "UST event already exist",
[ LTTCOMM_ERR_INDEX(LTTCOMM_UST_EVENT_NOT_FOUND)] = "UST event not found",
[ LTTCOMM_ERR_INDEX(LTTCOMM_UST_CONTEXT_EXIST)] = "UST context already exist",
+ [ LTTCOMM_ERR_INDEX(LTTCOMM_UST_CONTEXT_INVAL)] = "UST invalid context",
[ LTTCOMM_ERR_INDEX(CONSUMERD_COMMAND_SOCK_READY) ] = "consumerd command socket ready",
[ LTTCOMM_ERR_INDEX(CONSUMERD_SUCCESS_RECV_FD) ] = "consumerd success on receiving fds",
[ LTTCOMM_ERR_INDEX(CONSUMERD_ERROR_RECV_FD) ] = "consumerd error on receiving fds",
*/
ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len)
{
- struct msghdr msg = { 0 };
+ struct msghdr msg;
struct iovec iov[1];
ssize_t ret = -1;
+ memset(&msg, 0, sizeof(msg));
+
iov[0].iov_base = buf;
iov[0].iov_len = len;
msg.msg_iov = iov;
msg.msg_iovlen = 1;
- ret = recvmsg(sock, &msg, 0);
+ ret = recvmsg(sock, &msg, MSG_WAITALL);
if (ret < 0) {
perror("recvmsg");
}
*/
ssize_t lttcomm_send_unix_sock(int sock, void *buf, size_t len)
{
- struct msghdr msg = { 0 };
+ struct msghdr msg;
struct iovec iov[1];
ssize_t ret = -1;
+ memset(&msg, 0, sizeof(msg));
+
iov[0].iov_base = buf;
iov[0].iov_len = len;
msg.msg_iov = iov;
perror("shutdown");
}
+ close(sock);
+
return ret;
}
*/
ssize_t lttcomm_send_fds_unix_sock(int sock, int *fds, size_t nb_fd)
{
- struct msghdr msg = { 0 };
+ struct msghdr msg;
struct cmsghdr *cmptr;
struct iovec iov[1];
ssize_t ret = -1;
char tmp[CMSG_SPACE(sizeof_fds)];
char dummy = 0;
+ memset(&msg, 0, sizeof(msg));
+
if (nb_fd > LTTCOMM_MAX_SEND_FDS)
return -EINVAL;
struct cmsghdr *cmsg;
size_t sizeof_fds = nb_fd * sizeof(int);
char recv_fd[CMSG_SPACE(sizeof_fds)];
- struct msghdr msg = { 0 };
+ struct msghdr msg;
char dummy;
+ memset(&msg, 0, sizeof(msg));
+
/* Prepare to receive the structures */
iov[0].iov_base = &dummy;
iov[0].iov_len = 1;
*/
ssize_t lttcomm_send_creds_unix_sock(int sock, void *buf, size_t len)
{
- struct msghdr msg = { 0 };
+ struct msghdr msg;
struct cmsghdr *cmptr;
struct iovec iov[1];
ssize_t ret = -1;
size_t sizeof_cred = sizeof(struct ucred);
char anc_buf[CMSG_SPACE(sizeof_cred)];
+ memset(&msg, 0, sizeof(msg));
+
iov[0].iov_base = buf;
iov[0].iov_len = len;
msg.msg_iov = iov;
ssize_t lttcomm_recv_creds_unix_sock(int sock, void *buf, size_t len,
struct ucred *creds)
{
- struct msghdr msg = { 0 };
+ struct msghdr msg;
struct cmsghdr *cmptr;
struct iovec iov[1];
ssize_t ret;
size_t sizeof_cred = sizeof(struct ucred);
char anc_buf[CMSG_SPACE(sizeof_cred)];
+ memset(&msg, 0, sizeof(msg));
+
/* Not allowed */
if (creds == NULL) {
ret = -1;