comparison src/core/ngx_file.c @ 694:88a1b4797f2e NGINX_1_3_10

nginx 1.3.10 *) Change: domain names specified in configuration file are now resolved to IPv6 addresses as well as IPv4 ones. *) Change: now if the "include" directive with mask is used on Unix systems, included files are sorted in alphabetical order. *) Change: the "add_header" directive adds headers to 201 responses. *) Feature: the "geo" directive now supports IPv6 addresses in CIDR notation. *) Feature: the "flush" and "gzip" parameters of the "access_log" directive. *) Feature: variables support in the "auth_basic" directive. *) Bugfix: nginx could not be built with the ngx_http_perl_module in some cases. *) Bugfix: a segmentation fault might occur in a worker process if the ngx_http_xslt_module was used. *) Bugfix: nginx could not be built on MacOSX in some cases. Thanks to Piotr Sikora. *) Bugfix: the "limit_rate" directive with high rates might result in truncated responses on 32-bit platforms. Thanks to Alexey Antropov. *) Bugfix: a segmentation fault might occur in a worker process if the "if" directive was used. Thanks to Piotr Sikora. *) Bugfix: a "100 Continue" response was issued with "413 Request Entity Too Large" responses. *) Bugfix: the "image_filter", "image_filter_jpeg_quality" and "image_filter_sharpen" directives might be inherited incorrectly. Thanks to Ian Babrou. *) Bugfix: "crypt_r() failed" errors might appear if the "auth_basic" directive was used on Linux. *) Bugfix: in backup servers handling. Thanks to Thomas Chen. *) Bugfix: proxied HEAD requests might return incorrect response if the "gzip" directive was used.
author Igor Sysoev <http://sysoev.ru>
date Tue, 25 Dec 2012 00:00:00 +0400
parents f31b19fe7f48
children
comparison
equal deleted inserted replaced
693:cfd4279acc6e 694:88a1b4797f2e
730 len = (size_t) size; 730 len = (size_t) size;
731 } 731 }
732 732
733 n = ngx_read_fd(fd, buf, len); 733 n = ngx_read_fd(fd, buf, len);
734 734
735 if (n == NGX_FILE_ERROR) { 735 if (n == -1) {
736 ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, 736 ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
737 ngx_read_fd_n " \"%s\" failed", from); 737 ngx_read_fd_n " \"%s\" failed", from);
738 goto failed; 738 goto failed;
739 } 739 }
740 740
741 if ((size_t) n != len) { 741 if ((size_t) n != len) {
742 ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, 742 ngx_log_error(NGX_LOG_ALERT, cf->log, 0,
743 ngx_read_fd_n " has read only %z of %uz from %s", 743 ngx_read_fd_n " has read only %z of %uz from %s",
744 n, size, from); 744 n, size, from);
745 goto failed; 745 goto failed;
746 } 746 }
747 747
748 n = ngx_write_fd(nfd, buf, len); 748 n = ngx_write_fd(nfd, buf, len);
749 749
750 if (n == NGX_FILE_ERROR) { 750 if (n == -1) {
751 ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, 751 ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
752 ngx_write_fd_n " \"%s\" failed", to); 752 ngx_write_fd_n " \"%s\" failed", to);
753 goto failed; 753 goto failed;
754 } 754 }
755 755
756 if ((size_t) n != len) { 756 if ((size_t) n != len) {
757 ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, 757 ngx_log_error(NGX_LOG_ALERT, cf->log, 0,
758 ngx_write_fd_n " has written only %z of %uz to %s", 758 ngx_write_fd_n " has written only %z of %uz to %s",
759 n, size, to); 759 n, size, to);
760 goto failed; 760 goto failed;
761 } 761 }
762 762