From 49fb5f3fbf30f2fbae33a4c2e6243b1ea8b8045d Mon Sep 17 00:00:00 2001 From: Emil Mikulic Date: Fri, 21 Jul 2006 07:11:08 +0000 Subject: [PATCH] Fix fallback on platforms that don't have sendfile() It was quite badly broken. --- trunk/darkhttpd.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/trunk/darkhttpd.c b/trunk/darkhttpd.c index 7e1c965..598bb0e 100644 --- a/trunk/darkhttpd.c +++ b/trunk/darkhttpd.c @@ -2057,14 +2057,17 @@ static ssize_t send_from_file(const int s, const int fd, fprintf(stderr, "premature eof on fd %d\n", fd); return -1; } - else if (numread != -1) + else if (numread == -1) + { + fprintf(stderr, "error reading on fd %d: %s", fd, strerror(errno)); + return -1; + } + else if ((size_t)numread != amount) { fprintf(stderr, "read %d bytes, expecting %u bytes on fd %d\n", numread, amount, fd); return -1; } - else if ((size_t)numread != amount) - return -1; else return send(s, buf, amount, 0); #endif