# HG changeset patch # User Igor Sysoev # Date 1177363933 0 # Node ID df449f4a80320ccde08424892c3605563af9768f # Parent ea5ecb1aae88818e090d032b415d5d08094aefeb fix sendfile on 64-bit Linux and limit_rate on all 64-bit platforms for 2G+ files diff --git a/src/os/unix/ngx_freebsd_sendfile_chain.c b/src/os/unix/ngx_freebsd_sendfile_chain.c --- a/src/os/unix/ngx_freebsd_sendfile_chain.c +++ b/src/os/unix/ngx_freebsd_sendfile_chain.c @@ -154,7 +154,7 @@ ngx_freebsd_sendfile_chain(ngx_connectio size = limit - send; aligned = (cl->buf->file_pos + size + ngx_pagesize - 1) - & ~(ngx_pagesize - 1); + & ~((off_t) ngx_pagesize - 1); if (aligned <= cl->buf->file_last) { size = aligned - cl->buf->file_pos; diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c --- a/src/os/unix/ngx_linux_sendfile_chain.c +++ b/src/os/unix/ngx_linux_sendfile_chain.c @@ -223,7 +223,7 @@ ngx_linux_sendfile_chain(ngx_connection_ size = limit - send; aligned = (cl->buf->file_pos + size + ngx_pagesize - 1) - & ~(ngx_pagesize - 1); + & ~((off_t) ngx_pagesize - 1); if (aligned <= cl->buf->file_last) { size = aligned - cl->buf->file_pos; diff --git a/src/os/unix/ngx_solaris_sendfilev_chain.c b/src/os/unix/ngx_solaris_sendfilev_chain.c --- a/src/os/unix/ngx_solaris_sendfilev_chain.c +++ b/src/os/unix/ngx_solaris_sendfilev_chain.c @@ -135,7 +135,7 @@ ngx_solaris_sendfilev_chain(ngx_connecti size = limit - send; aligned = (cl->buf->file_pos + size + ngx_pagesize - 1) - & ~(ngx_pagesize - 1); + & ~((off_t) ngx_pagesize - 1); if (aligned <= cl->buf->file_last) { size = aligned - cl->buf->file_pos;