From 04547fe158fe05f97ccf584332319da3e6b344d8 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sun, 11 Jun 2023 12:47:21 +0200 Subject: msg: rework some APIs --- src/msg.c | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) (limited to 'src/msg.c') diff --git a/src/msg.c b/src/msg.c index 0e75c75..3975a0c 100644 --- a/src/msg.c +++ b/src/msg.c @@ -170,7 +170,7 @@ destroy_buf: return ret; } -int msg_send_from_argv(int fd, const char **argv) +int msg_send_argv(int fd, const char **argv) { struct msg *msg = NULL; int ret = 0; @@ -224,7 +224,7 @@ destroy_buf: return ret; } -int msg_communicate(int fd, const struct msg *request, struct msg **response) +int msg_talk(int fd, const struct msg *request, struct msg **response) { int ret = 0; @@ -248,8 +248,25 @@ int msg_communicate(int fd, const struct msg *request, struct msg **response) return ret; } -int msg_connect_and_communicate(const char *host, const char *port, const struct msg *request, - struct msg **response) +int msg_talk_argv(int fd, const char **argv, struct msg **response) +{ + struct msg *request = NULL; + int ret = 0; + + ret = msg_from_argv(&request, argv); + if (ret < 0) + return ret; + + ret = msg_talk(fd, request, response); + msg_free(request); + if (ret < 0) + return ret; + + return ret; +} + +int msg_connect_and_talk(const char *host, const char *port, const struct msg *request, + struct msg **response) { int fd = -1, ret = 0; @@ -257,7 +274,7 @@ int msg_connect_and_communicate(const char *host, const char *port, const struct if (fd < 0) return fd; - ret = msg_communicate(fd, request, response); + ret = msg_talk(fd, request, response); if (ret < 0) goto close; @@ -267,6 +284,24 @@ close: return ret; } +int msg_connect_and_talk_argv(const char *host, const char *port, const char **argv, + struct msg **response) +{ + struct msg *request = NULL; + int ret = 0; + + ret = msg_from_argv(&request, argv); + if (ret < 0) + return ret; + + ret = msg_connect_and_talk(host, port, request, response); + msg_free(request); + if (ret < 0) + return ret; + + return ret; +} + void msg_dump(const struct msg *msg) { log("Message[%zu]:\n", msg->argc); -- cgit v1.2.3