summaryrefslogtreecommitdiff
blob: 35dc3d2493e77cd83f2d26fde67f4ca7992b8d02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
check for sendfile() returning ENOSYS and fall back to standard I/O.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=330871

diff -Naur boa-0.94.14rc21-orig/src/pipe.c boa-0.94.14rc21/src/pipe.c
--- boa-0.94.14rc21-orig/src/pipe.c	2007-07-01 10:49:23.000000000 -0600
+++ boa-0.94.14rc21/src/pipe.c	2007-07-01 10:56:56.000000000 -0600
@@ -215,7 +215,9 @@
 	}
 	req->ranges->start = sendfile_offset;
         if (bytes_written < 0) {
-            if (errno == EWOULDBLOCK || errno == EAGAIN) {
+            if (errno == ENOSYS) {
+                return io_shuffle(req);
+			} else if (errno == EWOULDBLOCK || errno == EAGAIN) {
                 return -1;          /* request blocked at the pipe level, but keep going */
             } else if (errno == EINTR) {
                 goto retrysendfile;