| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2015-04-22 | Upstream: allow multiple upstreams to use the same shared zone. | Ruslan Ermilov | 2 | -84/+112 | |
| 2015-04-21 | Memcached: enabled ranges. | Martin Mlynář | 1 | -0/+1 | |
| 2015-04-21 | Upstream: simplified ip_hash and hash peer selection code. | Ruslan Ermilov | 3 | -66/+24 | |
| Now that peers are stored as a list, the weighted and unweighted cases became nearly identical. | |||||
| 2015-04-20 | Limit req: removed check for unknown limit_req_zone. | Sergey Kandaurov | 1 | -7/+0 | |
| With 48b3d5ddfb03, it's possible to specify limit_req_zone after limit_req. | |||||
| 2015-04-20 | Core: allow shared memory size to be declared after a reference. | Sergey Kandaurov | 1 | -0/+4 | |
| For example, this fixes the case when "proxy_cache_path" is specified after "proxy_cache" that references it. | |||||
| 2015-04-20 | Stream: port from NGINX+. | Ruslan Ermilov | 16 | -2/+5928 | |
| 2015-04-19 | Upstream: fixed unlocked access to peer->conns. | Ruslan Ermilov | 1 | -3/+6 | |
| 2015-03-26 | Replaced the remaining NGX_OLD_THREADS check with NGX_WIN32. | Ruslan Ermilov | 2 | -3/+3 | |
| 2015-03-26 | Removed NGX_OLD_THREADS from select and poll modules. | Ruslan Ermilov | 2 | -20/+0 | |
| These modules can't be compiled on win32. | |||||
| 2015-03-26 | Removed "worker_threads" and "thread_stack_size" directives. | Ruslan Ermilov | 5 | -78/+1 | |
| 2015-03-26 | Removed unused thread-local-storage code. | Ruslan Ermilov | 5 | -56/+0 | |
| 2015-03-26 | Removed ngx_threaded and related code. | Ruslan Ermilov | 3 | -39/+0 | |
| 2015-04-16 | Upstream: get rid of questionable micro-optimization in ip_hash. | Ruslan Ermilov | 1 | -7/+2 | |
| If a peer was initially skipped due to max_fails, there's no reason not to try it again if enough time has passed, and the next_upstream logic is in action. This also reduces diffs with NGINX Plus. | |||||
| 2015-04-16 | Core: ensure that ngx_config.h is always included first. | Sergey Kandaurov | 1 | -0/+3 | |
| This fixes compilation of various 3rd party modules when nginx is configured with threads. | |||||
| 2015-04-16 | Version bump. | Maxim Dounin | 1 | -2/+2 | |
| 2015-04-14 | Upstream: the "zone" directive. | Ruslan Ermilov | 7 | -7/+392 | |
| Upstreams with the "zone" directive are kept in shared memory, with a consistent view of all worker processes. | |||||
| 2015-04-14 | Upstreams: locking. | Ruslan Ermilov | 5 | -29/+50 | |
| 2015-03-21 | Core: read/write locks. | Ruslan Ermilov | 3 | -0/+134 | |
| 2015-04-10 | Upstream: store peers as a linked list. | Ruslan Ermilov | 5 | -86/+139 | |
| This is an API change. | |||||
| 2015-04-10 | Upstream: track the number of active connections to upstreams. | Ruslan Ermilov | 5 | -122/+35 | |
| This also simplifies the implementation of the least_conn module. | |||||
| 2015-04-16 | Fixed build, broken by 8b7f062a3fe6. | Ruslan Ermilov | 1 | -1/+2 | |
| Casting a "const char *" to "char *" doesn't work on older gcc versions. | |||||
| 2015-04-16 | Core: added OpenSSL version information to "nginx -V" output. | Vladimir Homutov | 1 | -5/+16 | |
| 2015-04-16 | Version bump. | Vladimir Homutov | 1 | -2/+2 | |
| 2015-03-26 | Core: guard against spinlock usage without atomic ops. | Ruslan Ermilov | 1 | -1/+1 | |
| The new thread pools code uses spinlocks. | |||||
| 2015-04-07 | Core: limited levels of subdirectory hierarchy used for temp files. | Sergey Kandaurov | 1 | -0/+4 | |
| Similar to ngx_http_file_cache_set_slot(), the last component of file->name with a fixed length of 10 bytes, as generated in ngx_create_temp_path(), is used as a source for the names of intermediate subdirectories with each one taking its own part. Ensure that the sum of specified levels with slashes fits into the length (ticket #731). | |||||
| 2015-04-07 | Core: removed excessive initialization in ngx_conf_set_path_slot(). | Sergey Kandaurov | 1 | -4/+0 | |
| Level hierarchy is pre-zeroed in ngx_pcalloc() of the surrounding ngx_path_t. | |||||
| 2015-04-07 | Core: fixed error handling on ngx_conf_full_name() failure. | Sergey Kandaurov | 1 | -1/+1 | |
| 2015-04-07 | Upstream: abbreviated SSL handshake may interact badly with Nagle. | Ruslan Ermilov | 1 | -1/+25 | |
| 2015-04-06 | Request body: always flush buffers if request buffering is off. | Valentin Bartenev | 1 | -0/+2 | |
| This fixes unbuffered proxying to SSL backends, since it prevents ngx_ssl_send_chain() from accumulation of request body in the SSL buffer. | |||||
| 2015-04-06 | Used the correct type for the AIO preload handler return value. | Valentin Bartenev | 1 | -2/+2 | |
| 2015-04-01 | OCSP stapling: missing free calls. | Filipe da Silva | 1 | -0/+2 | |
| Missing call to X509_STORE_CTX_free when X509_STORE_CTX_init fails. Missing call to OCSP_CERTID_free when OCSP_request_add0_id fails. Possible leaks in vary particular scenariis of memory shortage. | |||||
| 2015-04-01 | Cache: added support for reading of the header in thread pools. | Valentin Bartenev | 2 | -19/+109 | |
| 2015-03-31 | Fixed invalid access to complex value defined as an empty string. | Sergey Kandaurov | 2 | -5/+5 | |
| Found by Valgrind. | |||||
| 2015-03-27 | Events: fixed possible crash on start or reload. | Valentin Bartenev | 1 | -2/+2 | |
| The main thread could wake up and start processing the notify event before the handler was set. | |||||
| 2015-03-27 | Events: made posted events macros safe. | Valentin Bartenev | 1 | -8/+8 | |
| 2015-03-23 | SPDY: always push pending data. | Valentin Bartenev | 1 | -51/+40 | |
| This helps to avoid suboptimal behavior when a client waits for a control frame or more data to increase window size, but the frames have been delayed in the socket buffer. The delays can be caused by bad interaction between Nagle's algorithm on nginx side and delayed ACK on the client side or by TCP_CORK/TCP_NOPUSH if SPDY was working without SSL and sendfile() was used. The pushing code is now very similar to ngx_http_set_keepalive(). | |||||
| 2015-03-23 | SPDY: fixed error handling in ngx_http_spdy_send_output_queue(). | Valentin Bartenev | 1 | -8/+12 | |
| 2015-03-26 | Version bump. | Maxim Dounin | 1 | -2/+2 | |
| 2015-03-26 | Proxy: fixed proxy_request_buffering and chunked with preread body. | Maxim Dounin | 1 | -3/+4 | |
| If any preread body bytes were sent in the first chain, chunk size was incorrectly added before the whole chain, including header, resulting in an invalid request sent to upstream. Fixed to properly add chunk size after the header. | |||||
| 2015-03-23 | Upstream: uwsgi_request_buffering, scgi_request_buffering. | Maxim Dounin | 2 | -2/+44 | |
| 2015-03-23 | FastCGI: fastcgi_request_buffering. | Maxim Dounin | 1 | -18/+342 | |
| 2015-03-23 | Proxy: proxy_request_buffering chunked support. | Maxim Dounin | 1 | -6/+216 | |
| 2015-03-23 | Request body: unbuffered reading. | Maxim Dounin | 8 | -25/+306 | |
| The r->request_body_no_buffering flag was introduced. It instructs client request body reading code to avoid reading the whole body, and to call post_handler early instead. The caller should use the ngx_http_read_unbuffered_request_body() function to read remaining parts of the body. Upstream module is now able to use this mode, if configured with the proxy_request_buffering directive. | |||||
| 2015-03-23 | Request body: filters support. | Maxim Dounin | 5 | -8/+22 | |
| 2015-03-23 | Request body: moved request body writing to save filter. | Maxim Dounin | 1 | -14/+8 | |
| 2015-03-23 | Request body: free chain links in ngx_http_write_request_body(). | Maxim Dounin | 1 | -2/+7 | |
| 2015-03-23 | Output chain: free chain links in ngx_chain_writer(). | Maxim Dounin | 1 | -4/+12 | |
| 2015-03-23 | Output chain: zero size buf alerts in ngx_chain_writer(). | Maxim Dounin | 1 | -1/+32 | |
| Now we log a "zero size buf in chain writer" alert if we encounter a zero sized buffer in ngx_chain_writer(), and skip the buffer. | |||||
| 2015-03-23 | Format specifier fixed for file size of buffers. | Maxim Dounin | 3 | -9/+9 | |
| 2015-03-23 | Proxy: fixed proxy_set_body with proxy_cache. | Maxim Dounin | 1 | -0/+1 | |
| If the last header evaluation resulted in an empty header, the e.skip flag was set and was not reset when we've switched to evaluation of body_values. This incorrectly resulted in body values being skipped instead of producing some correct body as set by proxy_set_body. Fix is to properly reset the e.skip flag. As the problem only appeared if the last potentially non-empty header happened to be empty, it only manifested itself if proxy_set_body was used with proxy_cache. | |||||
