summaryrefslogtreecommitdiffhomepage
path: root/src/http (follow)
AgeCommit message (Collapse)AuthorFilesLines
2013-02-27Status: do not count connection as reading right after accept().Valentin Bartenev1-19/+0
Before we receive the first bytes, the connection is counted as waiting. This change simplifies further code changes.
2013-02-27SNI: reuse selected configuration for all requests in a connection.Valentin Bartenev3-7/+12
Previously, only the first request in a connection was assigned the configuration selected by SNI. All subsequent requests initially used the default server's configuration, ignoring SNI, which was wrong. Now all subsequent requests in a connection will initially use the configuration selected by SNI. This is done by storing a pointer to configuration in http connection object. It points to default server's configuration initially, but changed upon receipt of SNI. (The request's configuration can be further refined when parsing the request line and Host: header.) This change was not made specific to SNI as it also allows slightly faster access to configuration without the request object.
2013-02-27SNI: ignore captures in server_name regexes when matching by SNI.Valentin Bartenev1-43/+103
This change helps to decouple ngx_http_ssl_servername() from the request object. Note: now we close connection in case of error during server name lookup for request. Previously, we did so only for HTTP/0.9 requests.
2013-02-27Changed interface of ngx_http_validate_host().Valentin Bartenev1-42/+44
2013-02-27Introduced the ngx_http_set_connection_log() macro.Valentin Bartenev3-13/+12
No functional changes.
2013-02-27The default server lookup is now done only once per connection.Valentin Bartenev3-126/+126
Previously, it was done for every request in a connection.
2013-02-27Correctly handle multiple X-Forwarded-For headers (ticket #106).Ruslan Ermilov9-67/+139
2013-02-27Fixed separator in $sent_http_cache_control.Ruslan Ermilov1-6/+27
In case multiple "Cache-Control" headers are sent to a client, multiple values in $sent_http_cache_control were incorrectly split by a semicolon. Now they are split by a comma.
2013-02-23Fixed potential segfault in ngx_http_keepalive_handler().Valentin Bartenev1-0/+1
In case of error in the read event handling we close a connection by calling ngx_http_close_connection(), that also destroys connection pool. Thereafter, an attempt to free a buffer (added in r4892) that was allocated from the pool could cause SIGSEGV and is meaningless as well (the buffer already freed with the pool).
2013-02-23Trailing whitespace fix.Maxim Dounin2-2/+2
2013-02-21Introduced variables in ngx_http_stub_status module.Andrey Belov1-1/+80
Three new variables were added: $connections_active, $connections_reading and $connections_writing.
2013-02-20Connection upgrade support in uwsgi and scgi modules.Maxim Dounin2-2/+18
Prodded by Roberto De Ioris.
2013-02-19Removed zero termination of shm zone names.Valentin Bartenev2-3/+0
It was added in r2717 and no longer needed since r2721, where the termination was added to ngx_shm_alloc() and ngx_init_zone_pool(). So then it only corrupts error messages about ivalid zones.
2013-02-19Version bump.Valentin Bartenev1-1/+1
2013-02-18Proxy: fixed do_write handling in previous commit.Maxim Dounin1-9/+8
As rightfully complained by MSVC, do_write variable was used uninitialized. Correct fix is to set it's initial value based on event happened.
2013-02-18Proxy: support for connection upgrade (101 Switching Protocols).Maxim Dounin8-3/+323
This allows to proxy WebSockets by using configuration like this: location /chat/ { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } Connection upgrade is allowed as long as it was requested by a client via the Upgrade request header.
2013-02-13Fixed false memset warning on Linux with -O3 (ticket #275).Maxim Dounin1-2/+5
Prodded by John Leach.
2013-02-07Version bump.Maxim Dounin1-1/+1
2013-02-04GeoIP: removed pseudo-support of "proxy" and "netspeed" databases.Ruslan Ermilov1-2/+0
2013-02-01FastCGI: proper handling of split fastcgi end request.Maxim Dounin1-7/+37
If fastcgi end request record was split between several network packets, with fastcgi_keep_conn it was possible that connection was saved in incorrect state (e.g. with padding bytes not yet read).
2013-02-01FastCGI: unconditional state transitions.Maxim Dounin1-49/+8
Checks for f->padding before state transitions make code hard to follow, remove them and make sure we always do another loop iteration after f->state is set to ngx_http_fastcgi_st_padding.
2013-02-01FastCGI: fixed wrong connection close with fastcgi_keep_conn.Maxim Dounin1-4/+0
With fastcgi_keep_conn it was possible that connection was closed after FCGI_STDERR record with zero padding and without any further data read yet. This happended as f->state was set to ngx_http_fastcgi_st_padding and then "break" happened, resulting in p->length being set to f->padding, i.e. 0 (which in turn resulted in connection close). Fix is to make sure we continue the loop after f->state is set.
2013-02-01Request body: fixed client_body_in_file_only.Maxim Dounin1-1/+17
After introduction of chunked request body reading support in 1.3.9 (r4931), the rb->bufs wasn't set if request body was fully preread while calling the ngx_http_read_client_request_body() function. Reported by Yichun Zhang (agentzh).
2013-01-28Secure_link: fixed configuration inheritance.Ruslan Ermilov1-2/+15
The "secure_link_secret" directive was always inherited from the outer configuration level even when "secure_link" and "secure_link_md5" were specified on the inner level.
2013-01-24GeoIP: IPv6 support.Ruslan Ermilov1-13/+145
When using IPv6 databases, IPv4 addresses are looked up as IPv4-mapped IPv6 addresses. Mostly based on a patch by Gregor Kališnik (ticket #250).
2013-01-22Proxy: fixed proxy_method to always add space.Maxim Dounin1-4/+5
Before the patch if proxy_method was specified at http{} level the code to add trailing space wasn't executed, resulting in incorrect requests to upstream.
2013-01-21Variables $pipe, $request_length, $time_iso8601, and $time_local.Ruslan Ermilov1-0/+102
Log module counterparts are preserved for efficiency. Based on patch by Kiril Kalchev.
2013-01-17Version bump.Ruslan Ermilov1-1/+1
2013-01-16Fixed and improved the "*_bind" directives of proxying modules.Ruslan Ermilov8-12/+131
The "proxy_bind", "fastcgi_bind", "uwsgi_bind", "scgi_bind" and "memcached_bind" directives are now inherited; inherited value can be reset by the "off" parameter. Duplicate directives are now detected. Parameter value can now contain variables.
2013-01-10Fixed "proxy_pass" with IP address and no port (ticket #276).Ruslan Ermilov3-5/+10
Upstreams created by "proxy_pass" with IP address and no port were broken in 1.3.10, by not initializing port in u->sockaddr. API change: ngx_parse_url() was modified to always initialize port (in u->sockaddr and in u->port), even for the u->no_resolve case; ngx_http_upstream() and ngx_http_upstream_add() were adopted.
2012-12-27Geo: improved code readability.Ruslan Ermilov1-54/+61
2012-12-26Upstream keepalive: detect duplicate "keepalive" directive.Ruslan Ermilov1-0/+4
A failure to detect duplicate "keepalive" directive resulted in stack exhaustion.
2012-12-26Version bump.Ruslan Ermilov1-1/+1
2012-12-26Geo: made "default" affect both IPv4 and IPv6 when using prefixes.Ruslan Ermilov1-48/+77
Previously, "default" was equivalent to specifying 0.0.0.0/0, now it's equivalent to specifying both 0.0.0.0/0 and ::/0 (if support for IPv6 is enabled) with the same value.
2012-12-25Geo: properly initialize ngx_cidr_t when dealing with "default".Ruslan Ermilov1-1/+1
2012-12-25Geo: IPv6 support.Ruslan Ermilov1-79/+236
The "ranges" mode is still limited to IPv4 only.
2012-12-25Upstream: fixed state resetting when switching to backup servers.Valentin Bartenev2-2/+6
Based on patch by Thomas Chen (ticket #257).
2012-12-24Fixed HEAD requests handling when proxying is used (closes #261).Valentin Bartenev2-1/+2
2012-12-24Trailing whitespace fix.Ruslan Ermilov1-2/+2
2012-12-23Access log: the "gzip" parameter of the "access_log" directive.Valentin Bartenev1-5/+213
Note: this requires zlib version 1.2.0.4 or above to work.
2012-12-23Access log: the "flush" parameter of the "access_log" directive.Valentin Bartenev1-23/+97
2012-12-23Reopening log files code moved to a separate function.Valentin Bartenev1-19/+71
The code refactored in a way to call custom handler that can do appropriate cleanup work (if any), like flushing buffers, finishing compress streams, finalizing connections to log daemon, etc..
2012-12-23Access log: fixed redundant buffer reallocation.Valentin Bartenev1-5/+9
Previously a new buffer was allocated for every "access_log" directive with the same file path and "buffer=" parameters, while only one buffer per file is used.
2012-12-21Image filter: fixed image_filter rotate inheritance.Maxim Dounin1-9/+15
Configurations like location /i/ { image_filter resize 200 200; image_filter rotate 180; location /i/foo/ { image_filter resize 200 200; } } resulted in rotation incorrectly applied in the location /i/foo, without any way to clear it. Fix is to handle conf->angle/conf->acv consistently with other filter variables and do not try to inherit them if there are transformations defined for current location.
2012-12-21Geo: ensure that default entry is always present.Ruslan Ermilov1-4/+2
If 0.0.0.0/32 entry was present and there was no explicit "default", we failed to add an empty string as a default value.
2012-12-21There's no need to normalize address returned by ngx_ptocidr().Ruslan Ermilov1-1/+1
2012-12-20Image filter: configuration inheritance fixes.Maxim Dounin1-10/+18
The image_filter_jpeg_quality, image_filter_sharpen and "image_filter rotate" were inherited incorrectly if a directive with variables was defined, and then redefined to a literal value, i.e. in configurations like image_filter_jpeg_quality $arg_q; location / { image_filter_jpeg_quality 50; } Patch by Ian Babrou, with minor changes.
2012-12-20Brought the link to ngx_http_perl_module documentation up to date.Ruslan Ermilov1-1/+1
2012-12-19Let "add_header" affect 201 responses (ticket #125).Ruslan Ermilov1-0/+1
2012-12-19Slightly optimized code that handles special headers in "add_header".Ruslan Ermilov1-29/+21