X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=ustd%2Fustd.c;h=d5884dfe040c8bed7667a03e06784e444023c0e1;hb=3bb568630e172fd8d2a05f85b6f44218c18ce139;hp=8205ed2b2b5e3c77cc6fa9ecae56e2c2ef7ed0ae;hpb=3a7b90de71f2a82f73f06fb14a7b77805aea1064;p=ust.git
diff --git a/ustd/ustd.c b/ustd/ustd.c
index 8205ed2..d5884df 100644
--- a/ustd/ustd.c
+++ b/ustd/ustd.c
@@ -1,3 +1,20 @@
+/*
+ * Copyright (C) 2009 Pierre-Marc Fournier
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
#define _GNU_SOURCE
#include
@@ -18,6 +35,7 @@ struct list_head buffers = LIST_HEAD_INIT(buffers);
struct buffer_info {
char *name;
pid_t pid;
+ struct ustcomm_connection conn;
int shmid;
void *mem;
@@ -47,9 +65,9 @@ int get_subbuffer(struct buffer_info *buf)
int result;
asprintf(&send_msg, "get_subbuffer %s", buf->name);
- result = send_message(buf->pid, send_msg, &received_msg);
+ result = ustcomm_send_request(&buf->conn, send_msg, &received_msg);
if(result < 0) {
- ERR("get_subbuffer: send_message failed");
+ ERR("get_subbuffer: ustcomm_send_request failed");
return -1;
}
free(send_msg);
@@ -89,7 +107,7 @@ int put_subbuffer(struct buffer_info *buf)
int result;
asprintf(&send_msg, "put_subbuffer %s %ld", buf->name, buf->consumed_old);
- result = send_message(buf->pid, send_msg, &received_msg);
+ result = ustcomm_send_request(&buf->conn, send_msg, &received_msg);
if(result < 0) {
ERR("put_subbuffer: send_message failed");
return -1;
@@ -190,9 +208,16 @@ int add_buffer(pid_t pid, char *bufname)
buf->name = bufname;
buf->pid = pid;
+ /* connect to app */
+ result = ustcomm_connect_app(buf->pid, &buf->conn);
+ if(result) {
+ ERR("unable to connect to process");
+ return -1;
+ }
+
/* get shmid */
asprintf(&send_msg, "get_shmid %s", buf->name);
- send_message(pid, send_msg, &received_msg);
+ ustcomm_send_request(&buf->conn, send_msg, &received_msg);
free(send_msg);
DBG("got buffer name %s", buf->name);
@@ -206,7 +231,7 @@ int add_buffer(pid_t pid, char *bufname)
/* get n_subbufs */
asprintf(&send_msg, "get_n_subbufs %s", buf->name);
- send_message(pid, send_msg, &received_msg);
+ ustcomm_send_request(&buf->conn, send_msg, &received_msg);
free(send_msg);
result = sscanf(received_msg, "%d", &buf->n_subbufs);
@@ -219,7 +244,7 @@ int add_buffer(pid_t pid, char *bufname)
/* get subbuf size */
asprintf(&send_msg, "get_subbuf_size %s", buf->name);
- send_message(pid, send_msg, &received_msg);
+ ustcomm_send_request(&buf->conn, send_msg, &received_msg);
free(send_msg);
result = sscanf(received_msg, "%d", &buf->subbuf_size);