diff src/os/unix/ngx_linux_sendfile_chain.c @ 138:8e6d4d96ec4c NGINX_0_3_16

nginx 0.3.16 *) Feature: the ngx_http_map_module. *) Feature: the "types_hash_max_size" and "types_hash_bucket_size" directives. *) Feature: the "ssi_value_length" directive. *) Feature: the "worker_rlimit_core" directive. *) Workaround: the connection number in logs was always 1 if nginx was built by the icc 8.1 or 9.0 compilers with optimization for Pentium 4. *) Bugfix: the "config timefmt" SSI command set incorrect time format. *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the SSL connections; bug appeared in 0.3.13. Thanks to Rob Mueller. *) Bugfix: segmentation fault may occurred in at SSL shutdown; bug appeared in 0.3.13.
author Igor Sysoev <http://sysoev.ru>
date Fri, 16 Dec 2005 00:00:00 +0300
parents 1898c6d03d90
children 36af50a5582d
line wrap: on
line diff
--- a/src/os/unix/ngx_linux_sendfile_chain.c
+++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -26,21 +26,21 @@
 ngx_chain_t *
 ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
 {
-    int              rc, tcp_nodelay;
-    u_char          *prev;
-    off_t            size, send, prev_send, aligned, sent, fprev;
-    size_t           file_size;
-    ngx_uint_t       eintr, complete;
-    ngx_err_t        err;
-    ngx_buf_t       *file;
-    ngx_array_t      header;
-    ngx_event_t     *wev;
-    ngx_chain_t     *cl;
-    struct iovec    *iov, headers[NGX_HEADERS];
+    int            rc, tcp_nodelay;
+    off_t          size, send, prev_send, aligned, sent, fprev;
+    u_char        *prev;
+    size_t         file_size;
+    ngx_err_t      err;
+    ngx_buf_t     *file;
+    ngx_uint_t     eintr, complete;
+    ngx_array_t    header;
+    ngx_event_t   *wev;
+    ngx_chain_t   *cl;
+    struct iovec  *iov, headers[NGX_HEADERS];
 #if (NGX_HAVE_SENDFILE64)
-    off_t            offset;
+    off_t          offset;
 #else
-    int32_t          offset;
+    int32_t        offset;
 #endif
 
     wev = c->write;
@@ -233,6 +233,12 @@ ngx_linux_sendfile_chain(ngx_connection_
         }
 
         if (file) {
+#if 1
+            if (file_size == 0) {
+                ngx_debug_point();
+                return NGX_CHAIN_ERROR;
+            }
+#endif
 #if (NGX_HAVE_SENDFILE64)
             offset = file->file_pos;
 #else