projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
UST 2.0 support
[lttng-tools.git]
/
ltt-sessiond
/
ust-comm.c
diff --git
a/ltt-sessiond/ust-comm.c
b/ltt-sessiond/ust-comm.c
index accd4276d27c48156bfebb3e0a92602f75b6c60f..724260511e621660669e1fc3de28d1762279bc9a 100644
(file)
--- a/
ltt-sessiond/ust-comm.c
+++ b/
ltt-sessiond/ust-comm.c
@@
-16,22
+16,29
@@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <config.h>
+#include <stdlib.h>
#include <lttngerr.h>
#include <lttngerr.h>
-
#include "ust-comm.h"
/*
* Send msg containing a command to an UST application via sock and wait for
#include "ust-comm.h"
/*
* Send msg containing a command to an UST application via sock and wait for
- * the reply.
+ * the reply.
Caller must free() the reply structure sent back.
*
*
- * Return
-1 on error or if reply fails else return 0
.
+ * Return
the replied structure or NULL
.
*/
*/
-int ustcomm_send_command(int sock, struct lttcomm_ust_msg *msg)
+struct lttcomm_ust_reply *ustcomm_send_command(int sock,
+ struct lttcomm_ust_msg *msg)
{
ssize_t len;
{
ssize_t len;
- struct lttcomm_ust_reply reply;
+ struct lttcomm_ust_reply
*
reply;
- DBG("Sending UST command %d to sock %d", msg->cmd, sock);
+ /* Extra safety */
+ if (msg == NULL || sock < 0) {
+ goto error;
+ }
+
+ DBG2("Sending UST command %d to sock %d", msg->cmd, sock);
/* Send UST msg */
len = lttcomm_send_unix_sock(sock, msg, sizeof(*msg));
/* Send UST msg */
len = lttcomm_send_unix_sock(sock, msg, sizeof(*msg));
@@
-39,20
+46,22
@@
int ustcomm_send_command(int sock, struct lttcomm_ust_msg *msg)
goto error;
}
goto error;
}
- DBG("Receiving UST reply on sock %d", sock);
-
- /* Get UST reply */
- len = lttcomm_recv_unix_sock(sock, &reply, sizeof(reply));
- if (len < 0) {
+ reply = malloc(sizeof(struct lttcomm_ust_reply));
+ if (reply == NULL) {
+ perror("malloc ust reply");
goto error;
}
goto error;
}
- if (reply.ret_code != LTTCOMM_OK) {
+ DBG2("Receiving UST reply on sock %d", sock);
+
+ /* Get UST reply */
+ len = lttcomm_recv_unix_sock(sock, reply, sizeof(*reply));
+ if (len < 0 || len < sizeof(*reply)) {
goto error;
}
goto error;
}
- return
0
;
+ return
reply
;
error:
error:
- return
-1
;
+ return
NULL
;
}
}
This page took
0.025582 seconds
and
4
git commands to generate.