Commit 437aff38 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

zdtm/socket-tcpbuf: add shortcuts for RDWRing a specified size of data

Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 7efbdf2d
...@@ -25,6 +25,22 @@ static int port = 8880; ...@@ -25,6 +25,22 @@ static int port = 8880;
#define BUF_SIZE 4096 #define BUF_SIZE 4096
#define TCP_MAX_BUF (100 << 20) #define TCP_MAX_BUF (100 << 20)
static void read_safe(int fd, void *buf, size_t size)
{
if (read(fd, buf, size) != size) {
err("Unable to read from %d", fd);
exit(1);
}
}
static void write_safe(int fd, void *buf, size_t size)
{
if (write(fd, buf, size) != size) {
err("Unable to write from %d", fd);
exit(1);
}
}
static int fill_sock_buf(int fd) static int fill_sock_buf(int fd)
{ {
int flags; int flags;
...@@ -118,10 +134,7 @@ int main(int argc, char **argv) ...@@ -118,10 +134,7 @@ int main(int argc, char **argv)
#endif #endif
close(pfd[1]); close(pfd[1]);
if (read(pfd[0], &port, sizeof(port)) != sizeof(port)) { read_safe(pfd[0], &port, sizeof(port));
err("Can't read port\n");
return 1;
}
fd = tcp_init_client(ZDTM_FAMILY, "127.0.0.1", port); fd = tcp_init_client(ZDTM_FAMILY, "127.0.0.1", port);
if (fd < 0) if (fd < 0)
...@@ -135,10 +148,7 @@ int main(int argc, char **argv) ...@@ -135,10 +148,7 @@ int main(int argc, char **argv)
if (size <= 0) if (size <= 0)
return 1; return 1;
if (write(ctl_fd, &size, sizeof(size)) != sizeof(size)) { write_safe(ctl_fd, &size, sizeof(size));
err("write");
return 1;
}
if (read(ctl_fd, &c, 1) != 0) { if (read(ctl_fd, &c, 1) != 0) {
err("read"); err("read");
...@@ -170,10 +180,9 @@ int main(int argc, char **argv) ...@@ -170,10 +180,9 @@ int main(int argc, char **argv)
} }
close(pfd[0]); close(pfd[0]);
if (write(pfd[1], &port, sizeof(port)) != sizeof(port)) {
err("Can't send port"); write_safe(pfd[1], &port, sizeof(port));
return 1;
}
close(pfd[1]); close(pfd[1]);
/* /*
...@@ -209,10 +218,7 @@ int main(int argc, char **argv) ...@@ -209,10 +218,7 @@ int main(int argc, char **argv)
if (snd_size <= 0) if (snd_size <= 0)
return 1; return 1;
if (read(ctl_fd, &ret, sizeof(ret)) != sizeof(ret)) { read_safe(ctl_fd, &ret, sizeof(ret));
err("read");
return 1;
}
test_daemon(); test_daemon();
test_waitsig(); test_waitsig();
...@@ -234,10 +240,7 @@ int main(int argc, char **argv) ...@@ -234,10 +240,7 @@ int main(int argc, char **argv)
return 1; return 1;
} }
if (read(ctl_fd, &ret, sizeof(ret)) != sizeof(ret)) { read_safe(ctl_fd, &ret, sizeof(ret));
err("read");
return 1;
}
if (ret != snd_size) { if (ret != snd_size) {
fail("The parent sent %d bytes, but the child received %d bytes\n", snd_size, ret); fail("The parent sent %d bytes, but the child received %d bytes\n", snd_size, ret);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment