diff options
Diffstat (limited to 'src/server.c')
| -rw-r--r-- | src/server.c | 33 |
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) |
