diff src/os/unix/ngx_linux_sendfile_chain.c @ 28:7ca9bdc82b3f NGINX_0_1_14

nginx 0.1.14 *) Feature: the autoconfiguration directives: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and --http-fastcgi-temp-path=PATH *) Change: the directory name for the temporary files with the client request body is specified by directive client_body_temp_path, by default it is <prefix>/client_body_temp. *) Feature: the ngx_http_fastcgi_module and the directives: fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, fastcgi_busy_buffers_size, fastcgi_temp_path, fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, fastcgi_next_upstream, and fastcgi_x_powered_by. *) Bugfix: the "[alert] zero size buf" error; bug appeared in 0.1.3. *) Change: the URI must be specified after the host name in the proxy_pass directive. *) Change: the %3F symbol in the URI was considered as the argument string start. *) Feature: the unix domain sockets support in the ngx_http_proxy_module. *) Feature: the ssl_engine and ssl_ciphers directives. Thanks to Sergey Skvortsov for SSL-accelerator.
author Igor Sysoev <http://sysoev.ru>
date Tue, 18 Jan 2005 00:00:00 +0300
parents 45fe5b98a9de
children da8c190bdaba
line wrap: on
line diff
--- a/src/os/unix/ngx_linux_sendfile_chain.c
+++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -11,9 +11,10 @@
 
 /*
  * On Linux up to 2.4.21 sendfile() (syscall #187) works with 32-bit
- * offsets only and the including <sys/sendfile.h> breaks the compiling
- * if off_t is 64 bit wide.  So we use own sendfile() definition where offset
- * parameter is int32_t and use sendfile() for the file parts below 2G only.
+ * offsets only, and the including <sys/sendfile.h> breaks the compiling,
+ * if off_t is 64 bit wide.  So we use own sendfile() definition, where offset
+ * parameter is int32_t, and use sendfile() for the file parts below 2G only,
+ * see src/os/unix/ngx_linux_config.h
  *
  * Linux 2.4.21 has a new sendfile64() syscall #239.
  */
@@ -85,6 +86,14 @@ ngx_chain_t *ngx_linux_sendfile_chain(ng
                 continue;
             }
 
+#if 1
+            if (!ngx_buf_in_memory(cl->buf) && !cl->buf->in_file) {
+                ngx_log_error(NGX_LOG_ALERT, c->log, 0,
+                              "zero size buf in sendfile");
+                ngx_debug_point();
+            }
+#endif
+
             if (!ngx_buf_in_memory_only(cl->buf)) {
                 break;
             }
@@ -118,7 +127,6 @@ ngx_chain_t *ngx_linux_sendfile_chain(ng
             && cl
             && cl->buf->in_file)
         {
-
             /* the TCP_CORK and TCP_NODELAY are mutually exclusive */
 
             if (c->tcp_nodelay) {
@@ -131,7 +139,7 @@ ngx_chain_t *ngx_linux_sendfile_chain(ng
                     err = ngx_errno;
 
                     /*
-                     * there is a tiny chance to be interrupted, however
+                     * there is a tiny chance to be interrupted, however,
                      * we continue a processing with the TCP_NODELAY
                      * and without the TCP_CORK
                      */
@@ -157,7 +165,7 @@ ngx_chain_t *ngx_linux_sendfile_chain(ng
                     err = ngx_errno;
 
                     /*
-                     * there is a tiny chance to be interrupted, however
+                     * there is a tiny chance to be interrupted, however,
                      * we continue a processing without the TCP_CORK
                      */