summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server.c33
1 files changed, 8 insertions, 25 deletions
diff --git a/src/server.c b/src/server.c
index e49cea9..468c4d6 100644
--- a/src/server.c
+++ b/src/server.c
@@ -34,11 +34,8 @@ struct server_ctx {
/* buf is sized by count */
static ssize_t readx(int fd, void *buf, size_t count)
{
- /* total read */
- size_t t = 0;
-
while (1) {
- ssize_t r = read(fd, buf + t, count - t);
+ ssize_t r = read(fd, buf, count);
if (r == -1) {
if (errno == EINTR)
/* read interrupted, try again */
@@ -46,28 +43,21 @@ static ssize_t readx(int fd, void *buf, size_t count)
if (errno == EWOULDBLOCK)
/* no more data to read for now */
- return t;
-
- /* otherwise some unknown error, return it */
- return r;
+ return 0;
}
/* we've read as many bytes as are currently available */
- t += r;
- return t;
+ return r;
}
/* should never be reached, but keep here to avoid warnings */
- return t;
+ return 0;
}
static ssize_t writex(int fd, void *buf, size_t count)
{
- /* total written */
- size_t t = 0;
-
while (1) {
- ssize_t r = write(fd, buf + t, count - t);
+ ssize_t r = write(fd, buf, count);
if (r == -1) {
if (errno == EINTR)
/* write interrupted, try again */
@@ -75,21 +65,14 @@ static ssize_t writex(int fd, void *buf, size_t count)
if (errno == EWOULDBLOCK)
/* no more data to read for now */
- return t;
-
- /* otherwise some unknown error, return it */
- return r;
+ return 0;
}
- t += r;
-
- /* we've written the full buffer, quit */
- if (t == count)
- return t;
+ return r;
}
/* should never be reached, but keep here to avoid warnings */
- return t;
+ return 0;
}
static int new_connection(struct server_ctx *ctx, int new_conn_fd)