Mercurial > hg > nginx-vendor-current
comparison src/http/modules/ngx_http_proxy_module.c @ 642:d3cf6c6b0043 NGINX_1_1_5
nginx 1.1.5
*) Feature: the "uwsgi_buffering" and "scgi_buffering" directives.
Thanks to Peter Smit.
*) Bugfix: non-cacheable responses might be cached if
"proxy_cache_bypass" directive was used.
Thanks to John Ferlito.
*) Bugfix: in HTTP/1.1 support in the ngx_http_proxy_module.
*) Bugfix: cached responses with an empty body were returned
incorrectly; the bug had appeared in 0.8.31.
*) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the
bug had appeared in 0.8.32.
*) Bugfix: in the "return" directive.
*) Bugfix: the "ssl_session_cache builtin" directive caused segmentation
fault; the bug had appeared in 1.1.1.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 05 Oct 2011 00:00:00 +0400 |
parents | eb208e0cf44d |
children | 6f21ae02fb01 |
comparison
equal
deleted
inserted
replaced
641:6c19b251b926 | 642:d3cf6c6b0043 |
---|---|
1557 | 1557 |
1558 } else if (p->length < 0) { | 1558 } else if (p->length < 0) { |
1559 r = p->input_ctx; | 1559 r = p->input_ctx; |
1560 p->upstream_done = 1; | 1560 p->upstream_done = 1; |
1561 | 1561 |
1562 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, | 1562 ngx_log_error(NGX_LOG_WARN, r->connection->log, 0, |
1563 "upstream sent too many data"); | 1563 "upstream sent too many data"); |
1564 } | 1564 } |
1565 | 1565 |
1566 return NGX_OK; | 1566 return NGX_OK; |
1567 } | 1567 } |
1645 break; | 1645 break; |
1646 case LF: | 1646 case LF: |
1647 state = sw_trailer; | 1647 state = sw_trailer; |
1648 break; | 1648 break; |
1649 case ';': | 1649 case ';': |
1650 case ' ': | |
1651 case '\t': | |
1650 state = sw_last_chunk_extension; | 1652 state = sw_last_chunk_extension; |
1651 break; | 1653 break; |
1652 default: | 1654 default: |
1653 goto invalid; | 1655 goto invalid; |
1654 } | 1656 } |
1662 break; | 1664 break; |
1663 case LF: | 1665 case LF: |
1664 state = sw_chunk_data; | 1666 state = sw_chunk_data; |
1665 break; | 1667 break; |
1666 case ';': | 1668 case ';': |
1669 case ' ': | |
1670 case '\t': | |
1667 state = sw_chunk_extension; | 1671 state = sw_chunk_extension; |
1668 break; | 1672 break; |
1669 default: | 1673 default: |
1670 goto invalid; | 1674 goto invalid; |
1671 } | 1675 } |
1811 | 1815 |
1812 return NGX_DONE; | 1816 return NGX_DONE; |
1813 | 1817 |
1814 invalid: | 1818 invalid: |
1815 | 1819 |
1816 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, | |
1817 "upstream sent invalid chunked response"); | |
1818 | |
1819 return NGX_ERROR; | 1820 return NGX_ERROR; |
1820 } | 1821 } |
1821 | 1822 |
1822 | 1823 |
1823 static ngx_int_t | 1824 static ngx_int_t |
1927 break; | 1928 break; |
1928 } | 1929 } |
1929 | 1930 |
1930 /* invalid response */ | 1931 /* invalid response */ |
1931 | 1932 |
1932 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, | 1933 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, |
1933 "upstream sent invalid chunked response"); | 1934 "upstream sent invalid chunked response"); |
1934 | 1935 |
1935 return NGX_ERROR; | 1936 return NGX_ERROR; |
1936 } | 1937 } |
1937 | 1938 |
2083 break; | 2084 break; |
2084 } | 2085 } |
2085 | 2086 |
2086 /* invalid response */ | 2087 /* invalid response */ |
2087 | 2088 |
2088 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, | 2089 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, |
2089 "upstream sent invalid chunked response"); | 2090 "upstream sent invalid chunked response"); |
2090 | 2091 |
2091 return NGX_ERROR; | 2092 return NGX_ERROR; |
2092 } | 2093 } |
2093 | 2094 |