[nginx] Unbreak building on Linux without sendfile64() support.

Valentin Bartenev vbart at nginx.com
Thu Aug 15 15:18:26 UTC 2013


details:   http://hg.nginx.org/nginx/rev/bdb3588681c9
branches:  
changeset: 5322:bdb3588681c9
user:      Valentin Bartenev <vbart at nginx.com>
date:      Thu Aug 15 19:14:33 2013 +0400
description:
Unbreak building on Linux without sendfile64() support.

It was broken in 8e446a2daf48 when the NGX_SENDFILE_LIMIT constant was added
to ngx_linux_sendfile_chain.c having the same name as already defined one in
ngx_linux_config.h.

The newer is needed to overcome a bug in old Linux kernels by limiting the
number of bytes to send per sendfile() syscall.  The older is used with
sendfile() on ancient kernels that works with 32-bit offsets only.

One of these renamed to NGX_SENDFILE_MAXSIZE.

diffstat:

 src/os/unix/ngx_linux_sendfile_chain.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (23 lines):

diff -r 9806f7932474 -r bdb3588681c9 src/os/unix/ngx_linux_sendfile_chain.c
--- a/src/os/unix/ngx_linux_sendfile_chain.c	Tue Aug 13 17:47:04 2013 +0400
+++ b/src/os/unix/ngx_linux_sendfile_chain.c	Thu Aug 15 19:14:33 2013 +0400
@@ -24,7 +24,7 @@
  * so we limit it to 2G-1 bytes.
  */
 
-#define NGX_SENDFILE_LIMIT  2147483647L
+#define NGX_SENDFILE_MAXSIZE  2147483647L
 
 
 #if (IOV_MAX > 64)
@@ -63,8 +63,8 @@ ngx_linux_sendfile_chain(ngx_connection_
 
     /* the maximum limit size is 2G-1 - the page size */
 
-    if (limit == 0 || limit > (off_t) (NGX_SENDFILE_LIMIT - ngx_pagesize)) {
-        limit = NGX_SENDFILE_LIMIT - ngx_pagesize;
+    if (limit == 0 || limit > (off_t) (NGX_SENDFILE_MAXSIZE - ngx_pagesize)) {
+        limit = NGX_SENDFILE_MAXSIZE - ngx_pagesize;
     }
 
 



More information about the nginx-devel mailing list