[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 27/51] tests/qtest: Use send/recv for socket communication
From: |
Bin Meng |
Subject: |
[PATCH 27/51] tests/qtest: Use send/recv for socket communication |
Date: |
Wed, 24 Aug 2022 17:40:05 +0800 |
From: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Socket communication in the libqtest and libqmp codes uses read()
and write() which work on any file descriptor on *nix, and sockets
in *nix are an example of a file descriptor.
However sockets on Windows do not use *nix-style file descriptors,
so read() and write() cannot be used on sockets on Windows.
Switch over to use send() and recv() instead which work on both
Windows and *nix.
Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
tests/qtest/libqmp.c | 4 ++--
tests/qtest/libqtest.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/qtest/libqmp.c b/tests/qtest/libqmp.c
index ade26c15f0..995a39c1f8 100644
--- a/tests/qtest/libqmp.c
+++ b/tests/qtest/libqmp.c
@@ -36,7 +36,7 @@ typedef struct {
static void socket_send(int fd, const char *buf, size_t size)
{
- size_t res = qemu_write_full(fd, buf, size);
+ ssize_t res = send(fd, buf, size, 0);
assert(res == size);
}
@@ -69,7 +69,7 @@ QDict *qmp_fd_receive(int fd)
ssize_t len;
char c;
- len = read(fd, &c, 1);
+ len = recv(fd, &c, 1, 0);
if (len == -1 && errno == EINTR) {
continue;
}
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 909583dad3..b7b7c9c541 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -438,7 +438,7 @@ void qtest_quit(QTestState *s)
static void socket_send(int fd, const char *buf, size_t size)
{
- size_t res = qemu_write_full(fd, buf, size);
+ ssize_t res = send(fd, buf, size, 0);
assert(res == size);
}
@@ -470,7 +470,7 @@ static GString *qtest_client_socket_recv_line(QTestState *s)
ssize_t len;
char buffer[1024];
- len = read(s->fd, buffer, sizeof(buffer));
+ len = recv(s->fd, buffer, sizeof(buffer), 0);
if (len == -1 && errno == EINTR) {
continue;
}
--
2.34.1
- [PATCH 23/51] accel/qtest: Support qtest accelerator for Windows, (continued)
[PATCH 28/51] tests/qtest: libqtest: Exclude the *_fds APIs for win32, Bin Meng, 2022/08/24
[PATCH 29/51] tests/qtest: libqtest: Install signal handler via signal(), Bin Meng, 2022/08/24
[PATCH 30/51] tests: Skip iotests and qtest when '--without-default-devices', Bin Meng, 2022/08/24