summaryrefslogtreecommitdiffhomepage
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2014-01-04Fixed "zero size buf in output" alerts.Maxim Dounin1-21/+37
If a request had an empty request body (with Content-Length: 0), and there were preread data available (e.g., due to a pipelined request in the buffer), the "zero size buf in output" alert might be logged while proxying the request to an upstream. Similar alerts appeared with client_body_in_file_only if a request had an empty request body.
2014-01-04Win32: support for UTF-16 surrogate pairs (ticket #457).Maxim Dounin1-2/+21
2014-01-04Upstream: Cache-Control preferred over Expires.Maxim Dounin1-1/+1
Not really a strict check (as X-Accel-Expires might be ignored or contain invalid value), but quite simple to implement and better than what we have now.
2014-01-04Added per-process random seeding (ticket #456).Maxim Dounin2-1/+3
2014-01-04Allowed up to two EBUSY errors from sendfile().Maxim Dounin2-2/+5
Fallback to synchronous sendfile() now only done on 3rd EBUSY without any progress in a row. Not falling back is believed to be better in case of occasional EBUSY, though protection is still needed to make sure there will be no infinite loop.
2013-12-27Fixed setting of content type in some cases.Ruslan Ermilov3-0/+4
This fixes content type set in stub_status and autoindex responses to be usable in content type checks made by filter modules, such as charset and sub filters.
2013-12-27Style: removed surplus semicolons.Valentin Bartenev3-3/+3
2013-12-26SPDY: a bit smarter ngx_http_spdy_filter_get_data_frame().Valentin Bartenev1-10/+10
There is no need to pass FLAG_FIN as a separate argument since it can always be detected from the last_buf flag of the last frame buffer. No functional changes.
2013-12-26SPDY: refactored loop in ngx_http_spdy_body_filter().Valentin Bartenev1-9/+5
No functional changes.
2013-12-26SPDY: fixed possible request hang.Valentin Bartenev3-11/+23
Processing events from upstream connection can result in sending queued frames from other streams. In this case such streams were not added to handling queue and properly handled. A global per connection flag was replaced by a per stream flag that indicates currently sending stream while all other streams can be added to handling queue.
2013-12-23Dav: emit a warning about unsafe URI.Ruslan Ermilov1-1/+1
2013-12-23Teach ngx_http_parse_unsafe_uri() how to unescape URIs.Ruslan Ermilov2-17/+60
This fixes handling of escaped URIs in X-Accel-Redirect (ticket #316), SSI (ticket #240), and DAV.
2013-12-23Detect more unsafe URIs in ngx_http_parse_unsafe_uri().Ruslan Ermilov1-3/+7
The following URIs were considered safe: "..", "../foo", and "/foo/..".
2013-12-23Upstream: keep $upstream_http_x_accel_redirect intact.Ruslan Ermilov1-4/+4
When processing the X-Accel-Redirect header, the value of the $upstream_http_x_accel_redirect variable was also overwritten.
2013-12-19Fixed the first argument to getsockopt().Ruslan Ermilov1-2/+6
While here, always initialize the last argument.
2013-12-20SSL: ssl_buffer_size directive.Maxim Dounin4-3/+23
2013-12-09Upstream: simplified peer selection loop in the "ip_hash" module.Vladimir Homutov1-18/+28
Conditions for skipping ineligible peers are rewritten to make adding of new conditions simpler and be in line with the "round_robin" and "least_conn" modules. No functional changes.
2013-12-16Resolver: use minimum TTL for caching (ticket #329).Ruslan Ermilov1-6/+7
2013-12-18SPDY: use predefined constant for size of the Stream-ID field.Valentin Bartenev1-1/+1
No functional changes.
2013-12-18Version bump.Valentin Bartenev1-2/+2
2013-12-13Resolver: lookups are case-insensitive.Ruslan Ermilov1-3/+5
2013-12-09The "ipv6=" boolean parameter of the "resolver" directive.Ruslan Ermilov2-3/+36
When set to "off", only IPv4 addresses will be resolved, and no AAAA queries are ever sent.
2013-12-09Resolver: implemented IPv6 name to address resolving.Ruslan Ermilov5-63/+433
2013-12-06Resolver: implemented IPv6 address to name resolving.Ruslan Ermilov2-80/+398
2013-12-06Changed resolver API to use ngx_addr_t.Ruslan Ermilov7-141/+229
2013-12-13Resolver: fixed indentation.Ruslan Ermilov1-20/+20
2013-12-06Core: externalized ngx_cmp_sockaddr().Ruslan Ermilov3-70/+78
It's also extended with the "cmp_port" argument to indicate whether ports should be compared as well, or only addresses.
2013-12-06Resolver: fixes in PTR processing.Ruslan Ermilov1-5/+12
Verify that class of RR is "IN". Verify that RR data length is non-zero.
2013-12-06Resolver: fixes in A processing.Ruslan Ermilov1-14/+25
Verify that class of RR is "IN". Verify that RR data length is exactly four octets. Correctly shift to the next RR if RR type is unknown.
2013-12-06Resolver: fixed response processing.Ruslan Ermilov1-6/+5
Stricten response header checks: ensure that reserved bits are zeroes, and that the opcode is "standard query". Fixed the "zero-length domain name in DNS response" condition.
2013-12-06Resolver: removed unnecessary casts.Ruslan Ermilov1-2/+2
2013-12-06Resolver: improved code readability.Ruslan Ermilov1-69/+83
Renamed ngx_resolver_query_t to ngx_resolver_hdr_t as it describes the header that is common to DNS queries and answers. Replaced the magic number 12 by the size of the header structure. The other changes are self-explanatory.
2013-12-12Trailing whitespace fix.Maxim Dounin1-1/+1
2013-12-11Use ngx_chain_get_free_buf() in pipe input filters.Valentin Bartenev3-76/+20
No functional changes.
2013-12-10SPDY: drop the "delayed" flag when finalizing connection.Valentin Bartenev1-0/+2
This flag in SPDY fake write events serves the same purposes as the "ready" flag in real events, and it must be dropped if request needs to be handled. Otherwise, it can prevent the request from finalization if ngx_http_writer() was set, which results in a connection leak. Found by Xiaochen Wang.
2013-12-09Fixed handling of UNIX-domain sockets.Ruslan Ermilov2-0/+18
When evaluating $local_port, $server_port, and $server_addr, UNIX-domain sockets were mistakenly interpreted as IPv4 sockets.
2013-12-09Core: keep the length of the local sockaddr.Ruslan Ermilov4-5/+11
2013-12-06Fixed incorrect ngx_str_set() usage, broken in c82b2e020b9f.Piotr Sikora1-1/+1
Found by Coverity Scan CID 1135525. Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
2013-12-04Fixed build without SSL, broken by c82b2e020b9f.Maxim Dounin1-3/+3
2013-12-04SSL support in the uwsgi module.Maxim Dounin1-7/+197
Based on patch by Roberto De Ioris.
2013-12-03Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.Mathew Rodley5-0/+66
--- auto/unix | 12 ++++++++++++ src/core/ngx_connection.c | 32 ++++++++++++++++++++++++++++++++ src/core/ngx_connection.h | 4 ++++ src/http/ngx_http.c | 4 ++++ src/http/ngx_http_core_module.c | 21 +++++++++++++++++++++ src/http/ngx_http_core_module.h | 3 +++ 6 files changed, 76 insertions(+)
2013-12-03Fixed "setfib=" on non-first listening socket.Maxim Dounin1-0/+2
2013-12-03Improved code readablity in ngx_http_upstream_init_round_robin().Vladimir Homutov1-3/+3
Changed initialization order of the peer structure in one of the cases to be in line with the rest. No functional changes.
2013-12-03Fixed null pointer dereference with $upstream_cache_last_modified.Ruslan Ermilov1-1/+2
2013-11-29Win32: fixed init_process without master process (ticket #453).Maxim Dounin1-10/+0
Init process callbacks are called by ngx_worker_thread(), there is no need to call them in ngx_single_process_cycle().
2013-11-29Upstream: skip empty cache headers.Maxim Dounin3-3/+3
Notably this fixes HTTP_IF_MODIFIED_SINCE which was always sent with cache enabled in fastcgi/scgi/uwsgi after 43ccaf8e8728.
2013-11-29SSL: fixed c->read->ready handling in ngx_ssl_recv().Maxim Dounin1-0/+5
If c->read->ready was reset, but later some data were read from a socket buffer due to a call to ngx_ssl_recv(), the c->read->ready flag should be restored if not all data were read from OpenSSL buffers (as kernel won't notify us about the data anymore). More details are available here: http://mailman.nginx.org/pipermail/nginx/2013-November/041178.html
2013-11-29Version bump.Maxim Dounin1-2/+2
2013-11-19Proper backtracking after space in a request line.Ruslan Ermilov1-0/+2
2013-11-18Upstream: cache revalidation with conditional requests.Maxim Dounin8-6/+254
The following new directives are introduced: proxy_cache_revalidate, fastcgi_cache_revalidate, scgi_cache_revalidate, uwsgi_cache_revalidate. Default is off. When set to on, they enable cache revalidation using conditional requests with If-Modified-Since for expired cache items. As of now, no attempts are made to merge headers given in a 304 response during cache revalidation with headers previously stored in a cache item. Headers in a 304 response are only used to calculate new validity time of a cache item.