summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Hill <dirtyepic@gentoo.org>2007-07-01 17:09:02 +0000
committerRyan Hill <dirtyepic@gentoo.org>2007-07-01 17:09:02 +0000
commit0e75a5500539d6e4c5ff0ef592a0034f412f7d98 (patch)
tree0c7ce0a55073ef228cce21ce3a2a4f4a2c99dbde /www-servers/boa/files
parentAdded ant-trax to dep fix for bug #183849 (diff)
downloadgentoo-2-0e75a5500539d6e4c5ff0ef592a0034f412f7d98.tar.gz
gentoo-2-0e75a5500539d6e4c5ff0ef592a0034f412f7d98.tar.bz2
gentoo-2-0e75a5500539d6e4c5ff0ef592a0034f412f7d98.zip
Remove broken versions, add patch from Debian to support systems w/o
sendfile64(). Unmask. (Portage version: 2.1.3_rc6)
Diffstat (limited to 'www-servers/boa/files')
-rw-r--r--www-servers/boa/files/boa-0.94.14_alpha20-64bit.patch50
-rw-r--r--www-servers/boa/files/boa-0.94.14_rc21-ENOSYS.patch17
2 files changed, 17 insertions, 50 deletions
diff --git a/www-servers/boa/files/boa-0.94.14_alpha20-64bit.patch b/www-servers/boa/files/boa-0.94.14_alpha20-64bit.patch
deleted file mode 100644
index ff44da366884..000000000000
--- a/www-servers/boa/files/boa-0.94.14_alpha20-64bit.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -urN src/mmap_cache.c /tmp/src/mmap_cache.c
---- src/mmap_cache.c 2004-06-04 03:44:59.000000000 +0100
-+++ /tmp/src/mmap_cache.c 2005-07-28 14:40:50.320610000 +0100
-@@ -79,7 +79,7 @@
-
- m = mmap(0, s->st_size, PROT_READ, MAP_OPTIONS, data_fd, 0);
-
-- if ((int) m == -1) {
-+ if (m == MAP_FAILED) {
- int saved_errno = errno;
- log_error_time();
- fprintf(stderr, "Unable to mmap file: ");
-diff -urN src/read.c /tmp/src/read.c
---- src/read.c 2004-06-10 03:00:32.000000000 +0100
-+++ /tmp/src/read.c 2005-07-28 14:40:50.320610000 +0100
-@@ -40,6 +40,7 @@
- {
- int bytes;
- unsigned char *check, *buffer;
-+ size_t len;
-
- check = req->client_stream + req->parse_pos;
- buffer = req->client_stream;
-@@ -115,10 +116,11 @@
- if (req->status == ONE_LF) {
- *req->header_end = '\0';
-
-- if (req->header_end - req->header_line >= MAX_HEADER_LENGTH) {
-+ len = req->header_end - req->header_line;
-+ if (len >= MAX_HEADER_LENGTH) {
- log_error_doc(req);
-- fprintf(stderr, "Header too long at %d bytes: \"%s\"\n",
-- req->header_end - req->header_line,
-+ fprintf(stderr, "Header too long at %lu bytes: \"%s\"\n",
-+ len,
- req->header_line);
- send_r_bad_request(req);
- return 0;
-diff -urN src/request.c /tmp/src/request.c
---- src/request.c 2004-06-10 02:45:13.000000000 +0100
-+++ /tmp/src/request.c 2005-07-28 14:40:50.320610000 +0100
-@@ -85,7 +85,7 @@
- struct SOCKADDR salocal;
- unsigned int remote_addrlen = sizeof (struct SOCKADDR);
- request *conn; /* connection */
-- size_t len;
-+ socklen_t len;
-
- #ifndef INET6
- remote_addr.S_FAMILY = (sa_family_t) 0xdead;
diff --git a/www-servers/boa/files/boa-0.94.14_rc21-ENOSYS.patch b/www-servers/boa/files/boa-0.94.14_rc21-ENOSYS.patch
new file mode 100644
index 000000000000..35dc3d2493e7
--- /dev/null
+++ b/www-servers/boa/files/boa-0.94.14_rc21-ENOSYS.patch
@@ -0,0 +1,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;