aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/msg.c17
-rw-r--r--src/msg.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/src/msg.c b/src/msg.c
index 7bce01d..0e75c75 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -170,6 +170,23 @@ destroy_buf:
return ret;
}
+int msg_send_from_argv(int fd, const char **argv)
+{
+ struct msg *msg = NULL;
+ int ret = 0;
+
+ ret = msg_from_argv(&msg, argv);
+ if (ret < 0)
+ return ret;
+
+ ret = msg_send(fd, msg);
+ msg_free(msg);
+ if (ret < 0)
+ return ret;
+
+ return ret;
+}
+
int msg_recv(int fd, struct msg **_msg)
{
struct buf *buf = NULL;
diff --git a/src/msg.h b/src/msg.h
index 64da9b8..d81134d 100644
--- a/src/msg.h
+++ b/src/msg.h
@@ -30,6 +30,8 @@ int msg_is_error(const struct msg *);
int msg_recv(int fd, struct msg **);
int msg_send(int fd, const struct msg *);
+int msg_send_from_argv(int fd, const char **argv);
+
int msg_communicate(int fd, const struct msg *, struct msg **response);
int msg_connect_and_communicate(const char *host, const char *port, const struct msg *,
struct msg **);