summaryrefslogtreecommitdiffhomepage
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2015-04-27Win32: shared memory base addresses and remapping.Maxim Dounin4-2/+100
Two mechanisms are implemented to make it possible to store pointers in shared memory on Windows, in particular on Windows Vista and later versions with ASLR: - The ngx_shm_remap() function added to allow remapping of a shared memory zone to the address originally used for it in the master process. While important, it doesn't solve the problem by itself as in many cases it's not possible to use the address because of conflicts with other allocations. - We now create mappings at the same address in all processes by starting mappings at predefined addresses normally unused by newborn processes. These two mechanisms combined allow to use shared memory on Windows almost without problems, including reloads. Based on the patch by Sergey Brester: http://mailman.nginx.org/pipermail/nginx-devel/2015-April/006836.html
2015-04-27Win32: fixed shm.handle loss on reload.Maxim Dounin1-0/+3
2015-04-27Core: fixed nginx_shared_zone name.Maxim Dounin1-1/+1
2015-02-20Mail: error_log support.Vladimir Homutov4-19/+54
2015-04-25Core: the ngx_set_connection_log() macro.Vladimir Homutov7-27/+17
The http and stream versions of this macro were identical.
2015-04-24Merge proxy_protocol setting of listen directives.Roman Arutyunyan1-1/+4
It's now enough to specify proxy_protocol option in one listen directive to enable it in all servers listening on the same address/port. Previously, the setting from the first directive was always used.
2015-04-23Removed the "worker_rlimit_sigpending" directive.Ruslan Ermilov3-22/+0
It was only needed by the just removed rtsig module.
2015-04-23Removed the obsolete rtsig module.Ruslan Ermilov10-887/+27
2015-04-22Removed the obsolete aio module.Ruslan Ermilov16-600/+14
2015-04-22Stream: prevent repeated event notifications after eof.Roman Arutyunyan1-1/+4
When client or upstream connection is closed, level-triggered read event remained active until the end of the session leading to cpu hog. Now the flag NGX_CLOSE_EVENT is used to unschedule the event.
2015-04-22Upstream: allow multiple upstreams to use the same shared zone.Ruslan Ermilov2-84/+112
2015-04-21Memcached: enabled ranges.Martin Mlynář1-0/+1
2015-04-21Upstream: simplified ip_hash and hash peer selection code.Ruslan Ermilov3-66/+24
Now that peers are stored as a list, the weighted and unweighted cases became nearly identical.
2015-04-20Limit req: removed check for unknown limit_req_zone.Sergey Kandaurov1-7/+0
With 48b3d5ddfb03, it's possible to specify limit_req_zone after limit_req.
2015-04-20Core: allow shared memory size to be declared after a reference.Sergey Kandaurov1-0/+4
For example, this fixes the case when "proxy_cache_path" is specified after "proxy_cache" that references it.
2015-04-20Stream: port from NGINX+.Ruslan Ermilov16-2/+5928
2015-04-19Upstream: fixed unlocked access to peer->conns.Ruslan Ermilov1-3/+6
2015-03-26Replaced the remaining NGX_OLD_THREADS check with NGX_WIN32.Ruslan Ermilov2-3/+3
2015-03-26Removed NGX_OLD_THREADS from select and poll modules.Ruslan Ermilov2-20/+0
These modules can't be compiled on win32.
2015-03-26Removed "worker_threads" and "thread_stack_size" directives.Ruslan Ermilov5-78/+1
2015-03-26Removed unused thread-local-storage code.Ruslan Ermilov5-56/+0
2015-03-26Removed ngx_threaded and related code.Ruslan Ermilov3-39/+0
2015-04-16Upstream: get rid of questionable micro-optimization in ip_hash.Ruslan Ermilov1-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-16Core: ensure that ngx_config.h is always included first.Sergey Kandaurov1-0/+3
This fixes compilation of various 3rd party modules when nginx is configured with threads.
2015-04-16Version bump.Maxim Dounin1-2/+2
2015-04-14Upstream: the "zone" directive.Ruslan Ermilov7-7/+392
Upstreams with the "zone" directive are kept in shared memory, with a consistent view of all worker processes.
2015-04-14Upstreams: locking.Ruslan Ermilov5-29/+50
2015-03-21Core: read/write locks.Ruslan Ermilov3-0/+134
2015-04-10Upstream: store peers as a linked list.Ruslan Ermilov5-86/+139
This is an API change.
2015-04-10Upstream: track the number of active connections to upstreams.Ruslan Ermilov5-122/+35
This also simplifies the implementation of the least_conn module.
2015-04-16Fixed build, broken by 8b7f062a3fe6.Ruslan Ermilov1-1/+2
Casting a "const char *" to "char *" doesn't work on older gcc versions.
2015-04-16Core: added OpenSSL version information to "nginx -V" output.Vladimir Homutov1-5/+16
2015-04-16Version bump.Vladimir Homutov1-2/+2
2015-03-26Core: guard against spinlock usage without atomic ops.Ruslan Ermilov1-1/+1
The new thread pools code uses spinlocks.
2015-04-07Core: limited levels of subdirectory hierarchy used for temp files.Sergey Kandaurov1-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-07Core: removed excessive initialization in ngx_conf_set_path_slot().Sergey Kandaurov1-4/+0
Level hierarchy is pre-zeroed in ngx_pcalloc() of the surrounding ngx_path_t.
2015-04-07Core: fixed error handling on ngx_conf_full_name() failure.Sergey Kandaurov1-1/+1
2015-04-07Upstream: abbreviated SSL handshake may interact badly with Nagle.Ruslan Ermilov1-1/+25
2015-04-06Request body: always flush buffers if request buffering is off.Valentin Bartenev1-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-06Used the correct type for the AIO preload handler return value.Valentin Bartenev1-2/+2
2015-04-01OCSP stapling: missing free calls.Filipe da Silva1-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-01Cache: added support for reading of the header in thread pools.Valentin Bartenev2-19/+109
2015-03-31Fixed invalid access to complex value defined as an empty string.Sergey Kandaurov2-5/+5
Found by Valgrind.
2015-03-27Events: fixed possible crash on start or reload.Valentin Bartenev1-2/+2
The main thread could wake up and start processing the notify event before the handler was set.
2015-03-27Events: made posted events macros safe.Valentin Bartenev1-8/+8
2015-03-23SPDY: always push pending data.Valentin Bartenev1-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-23SPDY: fixed error handling in ngx_http_spdy_send_output_queue().Valentin Bartenev1-8/+12
2015-03-26Version bump.Maxim Dounin1-2/+2
2015-03-26Proxy: fixed proxy_request_buffering and chunked with preread body.Maxim Dounin1-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-23Upstream: uwsgi_request_buffering, scgi_request_buffering.Maxim Dounin2-2/+44