Commit Graph

4417 Commits

Author SHA1 Message Date
Ruslan Ermilov
06733ae8cf - New variable: $connection_requests.
- While here, fixed format specifier for $connection.
2012-03-15 19:37:32 +00:00
Maxim Dounin
d694ff7798 Version bump. 2012-03-15 17:43:54 +00:00
Maxim Dounin
d1ed97b18b Headers with null character are now rejected.
Headers with NUL character aren't allowed by HTTP standard and may cause
various security problems.  They are now unconditionally rejected.
2012-03-15 11:27:57 +00:00
Maxim Dounin
eb526b7d7d Fixed incorrect ngx_cpystrn() usage in ngx_http_*_process_header().
This resulted in a disclosure of previously freed memory if upstream
server returned specially crafted response, potentially exposing
sensitive information.

Reported by Matthew Daley.
2012-03-15 11:27:12 +00:00
Maxim Dounin
030e235ec7 Fixed ssi and perl interaction.
Embedded perl module assumes there is a space for terminating NUL character,
make sure to provide it in all situations by allocating one extra byte for
value buffer.  Default ssi_value_length is reduced accordingly to
preserve 256 byte allocations.

While here, fixed another one byte value buffer overrun possible in
ssi_quoted_symbol_state.

Reported by Matthew Daley.
2012-03-15 11:23:07 +00:00
Maxim Dounin
205394e6f9 Uwsgi: merged r->http_version fixes from scgi module.
Fixed incorrect use of r->http_version (r4372).  Removed duplicate function
declaration (r4373).  Removed error if there is no Status header (r4374).
2012-03-15 11:21:54 +00:00
Maxim Dounin
ee187436af Whitespace fixes. 2012-03-05 18:09:06 +00:00
Maxim Dounin
382499aa1f Version bump. 2012-03-05 18:06:15 +00:00
Maxim Dounin
a95c85e78a Raised simultaneous subrequest limit from 50 to 200.
It wasn't enforced for a long time, and there are reports that people
use up to 100 simultaneous subrequests now.  As this is a safety limit
to prevent loops, it's raised accordingly.
2012-02-28 14:54:23 +00:00
Maxim Dounin
db402276e1 Added msleep() on reload to allow new processes to start.
This is expected to ensure smoother operation on reload (and with less
chance of listen queue overflows).

Prodded by Igor Sysoev.
2012-02-28 11:40:18 +00:00
Ruslan Ermilov
b74f8ffce4 Fixed spelling in single-line comments. 2012-02-28 11:31:05 +00:00
Maxim Dounin
c66a1e7a17 Workaround for fs_size on ZFS (ticket #46).
ZFS reports incorrect st_blocks until file settles on disk, and this
may take a while (i.e. just after creation of a file the st_blocks value
is incorrect).  As a workaround we now use st_blocks only if
st_blocks * 512 > st_size, this should fix ZFS problems while still
preserving accuracy for other filesystems.

The problem had appeared in r3900 (1.0.1).
2012-02-28 11:09:02 +00:00
Maxim Dounin
7ca6c1ff78 Fix of rbtree lookup on hash collisions.
Previous code incorrectly assumed that nodes with identical keys are linked
together.  This might not be true after tree rebalance.

Patch by Lanshun Zhou.
2012-02-27 22:15:39 +00:00
Maxim Dounin
53d9677de4 Fixed null pointer dereference in resolver (ticket #91).
The cycle->new_log.file may not be set before config parsing finished if
there are no error_log directive defined at global level.  Fix is to
copy it after config parsing.

Patch by Roman Arutyunyan.
2012-02-27 16:57:02 +00:00
Valentin Bartenev
5c95f88503 Disable symlinks: added the "from=" parameter to the "disable_symlinks"
directive.
2012-02-27 16:54:10 +00:00
Valentin Bartenev
0e05ca0404 Disable symlinks: initialization of the "disable_symlinks" field in
ngx_open_file_info_t moved to a separate function.

This is preparation for the "from=" parameter implementation of the
"disable_symlinks" directive.
2012-02-27 16:51:28 +00:00
Valentin Bartenev
346791187f Disable symlinks: added the "from" parameter support to the open file cache. 2012-02-27 16:46:57 +00:00
Ruslan Ermilov
1c57fb8790 Added support for the 307 Temporary Redirect. 2012-02-27 11:43:40 +00:00
Ruslan Ermilov
09422e632f Renamed constants and fixed off-by-one error in "msie_padding on" handling. 2012-02-22 16:23:29 +00:00
Maxim Dounin
b5d0d7a232 Event pipe: fixed buffer loss in p->length case.
With previous code raw buffer might be lost if p->input_filter() was called
on a buffer without any data and used ngx_event_pipe_add_free_buf() to
return it to the free list.  This eventually might cause "all buffers busy"
problem, resulting in segmentation fault due to null pointer dereference in
ngx_event_pipe_write_chain_to_temp_file().

In ngx_event_pipe_add_free_buf() the buffer was added to the list start
due to pos == last, and then "p->free_raw_bufs = cl->next" in
ngx_event_pipe_read_upstream() dropped both chain links to the buffer
from the p->free_raw_bufs list.

Fix is to move "p->free_raw_bufs = cl->next" before calling the
p->input_filter().
2012-02-22 11:28:53 +00:00
Valentin Bartenev
86c5513ecb Disable symlinks: use O_SEARCH|O_DIRECTORY to open path components. 2012-02-21 15:10:13 +00:00
Valentin Bartenev
15b3173c5e Disable symlinks: don't allow creating or truncating a file via a symlink in
the last path component if "if_not_owner" parameter is used.

To prevent race condition we have to open a file before checking its owner and
there's no way to change access flags for already opened file descriptor, so
we disable symlinks for the last path component at all if flags allow creating
or truncating the file.
2012-02-21 15:04:41 +00:00
Valentin Bartenev
8c27e6429a Disable symlinks: cleanups once again.
In collaboration with Ruslan Ermilov.
2012-02-21 15:01:25 +00:00
Maxim Dounin
7ba66f42a0 Disable symlinks: added explicit cast of AT_FDCWD (ticket #111).
Solaris has AT_FDCWD defined to unsigned value, and comparison of a file
descriptor with it causes warnings in modern versions of gcc.  Explicitly
cast AT_FDCWD to ngx_fd_t to resolve these warnings.
2012-02-20 19:14:35 +00:00
Maxim Dounin
6bb86e3d58 Disable symlinks: error handling cleanup again. 2012-02-20 19:14:07 +00:00
Maxim Dounin
3c00e341ea Version bump. 2012-02-20 19:12:48 +00:00
Maxim Dounin
32b000bad7 Disable symlinks: fixed edge cases of path handling.
This includes non-absolute pathnames, multiple slashes and trailing
slashes.  In collaboration with Valentin Bartenev.
2012-02-15 12:18:55 +00:00
Maxim Dounin
04015a48ca Disable symlinks: cleanup error handling.
Notably this fixes NGX_INVALID_FILE/NGX_FILE_ERROR mess, and adds
logging of close() errors.  In collaboration with Valentin Bartenev.
2012-02-15 12:17:24 +00:00
Andrey Belov
8ce8f6667f Support for disable_symlinks in various modules. 2012-02-13 16:32:21 +00:00
Andrey Belov
bd1e719bf9 Added disable_symlinks directive.
To completely disable symlinks (disable_symlinks on)
we use openat(O_NOFOLLOW) for each path component
to avoid races.

To allow symlinks with the same owner (disable_symlinks if_not_owner),
use openat() (followed by fstat()) and fstatat(AT_SYMLINK_NOFOLLOW),
and then compare uids between fstat() and fstatat().

As there is a race between openat() and fstatat() we don't
know if openat() in fact opened symlink or not.  Therefore,
we have to compare uids even if fstatat() reports the opened
component isn't a symlink (as we don't know whether it was
symlink during openat() or not).

Default value is off, i.e. symlinks are allowed.
2012-02-13 16:29:04 +00:00
Andrey Belov
32c8df44d5 Changed ngx_open_and_stat_file() to use ngx_str_t.
No functional changes.
2012-02-13 16:16:45 +00:00
Andrey Belov
71205c3fbc Added openat()/fstatat(). 2012-02-13 16:13:21 +00:00
Maxim Dounin
9f38b20db5 Time parsing cleanup.
Nuke NGX_PARSE_LARGE_TIME, it's not used since 0.6.30.  The only error
ngx_parse_time() can currently return is NGX_ERROR, check it explicitly
and make sure to cast it to appropriate type (either time_t or ngx_msec_t)
to avoid signedness warnings on platforms with unsigned time_t (notably QNX).
2012-02-13 15:41:11 +00:00
Maxim Dounin
8cb7134f49 Fixed build with embedded perl and --with-openssl. 2012-02-13 15:38:48 +00:00
Maxim Dounin
7dff998495 Core: protection from cycles with named locations and post_action.
Now redirects to named locations are counted against normal uri changes
limit, and post_action respects this limit as well.  As a result at least
the following (bad) configurations no longer trigger infinite cycles:

1. Post action which recursively triggers post action:

    location / {
        post_action /index.html;
    }

2. Post action pointing to nonexistent named location:

    location / {
        post_action @nonexistent;
    }

3. Recursive error page for 500 (Internal Server Error) pointing to
   a nonexistent named location:

    location / {
        recursive_error_pages on;
        error_page 500 @nonexistent;
        return 500;
    }
2012-02-13 15:35:48 +00:00
Maxim Dounin
1b0ad6ee72 Core: protection from subrequest loops.
Without the protection, subrequest loop results in r->count overflow and
SIGSEGV.  Protection was broken in 0.7.25.

Note that this also limits number of parallel subrequests.  This
wasn't exactly the case before 0.7.25 as local subrequests were
completed directly.

See here for details:
http://nginx.org/pipermail/nginx-ru/2010-February/032184.html
2012-02-13 15:33:08 +00:00
Maxim Dounin
947fc03ca3 Variables: honor no_cacheable for not_found variables.
Variables with the "not_found" flag set follow the same rules as ones with
the "valid" flag set.  Make sure ngx_http_get_flushed_variable() will flush
non-cacheable variables with the "not_found" flag set.

This fixes at least one known problem with $args not available in a subrequest
(with args) when there were no args in the main request and $args variable was
queried in the main request (reported by Laurence Rowe aka elro on irc).

Also this eliminates unneeded call to ngx_http_get_indexed_variable() in
cacheable case (as it will return cached value anyway).
2012-02-13 15:31:07 +00:00
Maxim Dounin
01c133cda4 Fix for proxy_store leaving temporary files for subrequests.
Temporary files might not be removed if the "proxy_store" or "fastcgi_store"
directives were used for subrequests (e.g. ssi includes) and client closed
connection prematurely.

Non-active subrequests are finalized out of the control of the upstream
module when client closes a connection.  As a result, the code to remove
unfinished temporary files in ngx_http_upstream_process_request() wasn't
executed.

Fix is to move relevant code into ngx_http_upstream_finalize_request() which
is called in all cases, either directly or via the cleanup handler.
2012-02-13 15:28:19 +00:00
Maxim Dounin
71ce7a13ed Gzip filter: handling of empty flush buffers.
Empty flush buffers are legitimate and may happen e.g. due to $r->flush()
calls in embedded perl.  If there are no data buffered in zlib, deflate()
will return Z_BUF_ERROR (i.e. no progress possible) without adding anything
to output.  Don't treat Z_BUF_ERROR as fatal and correctly send empty flush
buffer if we have no data in output at all.

See this thread for details:
http://mailman.nginx.org/pipermail/nginx/2010-November/023693.html
2012-02-13 15:23:43 +00:00
Maxim Dounin
37c6228d43 Removed r->cache/r->cached dependencies in range filter.
This is a layering violation, use correct offset calculations instead.
2012-02-13 15:20:49 +00:00
Valentin Bartenev
a113cb3543 Proxy: added the "proxy_cookie_path" directive. 2012-02-13 11:08:05 +00:00
Valentin Bartenev
e9df2d6f46 Proxy: added the "proxy_cookie_domain" directive. 2012-02-13 11:04:45 +00:00
Valentin Bartenev
b3e3b2e75a Upstream: added callback hook for the "Set-Cookie" header.
No functional changes.
2012-02-13 11:01:58 +00:00
Valentin Bartenev
85551e58fe Proxy: generic regex related code from the "proxy_redirect" directive moved
to a separate function.

No functional changes.
2012-02-13 11:00:08 +00:00
Valentin Bartenev
7c611aa186 Proxy: generic rewrite code from the "proxy_redirect" handlers moved to a
separate function with trivial optimization.

No functional changes.
2012-02-13 10:56:09 +00:00
Valentin Bartenev
582dac116d Proxy: renamed some "proxy_redirect" related declarations to a more general and
reusable.

No functional changes.
2012-02-13 10:42:44 +00:00
Maxim Dounin
060b92451b Upstream: fixed "too big header" check.
If header filter postponed processing of a header by returning NGX_AGAIN
and not moved u->buffer->pos, previous check incorrectly assumed there
is additional space and did another recv() with zero-size buffer.  This
resulted in "upstream prematurely closed connection" error instead
of correct "upstream sent too big header" one.

Patch by Feibo Li.
2012-02-10 14:31:04 +00:00
Valentin Bartenev
891b43db32 Added ngx_ncpu detection for most *nix platforms.
This inaccurate detection by using sysconf(_SC_NPROCESSORS_ONLN) can improve
usage of the mutex lock optimization on multicore systems.
2012-02-10 11:24:19 +00:00
Valentin Bartenev
9e8708cbd6 Limit conn: returned to the old behavior of using the first actual limit on
the way.

It was unintentionally changed in r4272, so that it could only limit the first
location where the processing of the request has reached PREACCESS phase.
2012-02-10 10:48:58 +00:00
Valentin Bartenev
e35ff2a08c Fixed module name in comment. It was forgotten in r4281. 2012-02-10 09:56:37 +00:00
Maxim Dounin
0f3d6715e7 Version bump. 2012-02-09 16:18:02 +00:00
Maxim Dounin
11cc9dac44 Limit req: unbreak compilation with MSVC. 2012-01-30 13:19:25 +00:00
Valentin Bartenev
fbf7a0a48a Fixed memory leak on HUP signal when PCRE JIT was used.
The PCRE JIT compiler uses mmap to allocate memory for its executable codes, so
we have to explicitly call the pcre_free_study() function to free this memory.
2012-01-30 12:53:57 +00:00
Valentin Bartenev
3feafa765f Fixed proxy_redirect off inheritance.
Example configuration to reproduce:

  server {
      proxy_redirect off;

      location / {
          proxy_pass http://localhost:8000;
          proxy_redirect http://localhost:8000/ /;

          location ~ \.php$ {
              proxy_pass http://localhost:8000;
              # proxy_redirect must be inherited from the level above,
              # but instead it was switched off here
          }
      }
  }
2012-01-30 11:22:56 +00:00
Maxim Dounin
4a23bc5705 Fixed error handling in ngx_event_connect_peer().
Previously if ngx_add_event() failed a connection was freed two times (once
in the ngx_event_connect_peer(), and again by a caller) as pc->connection was
left set.  Fix is to always use ngx_close_connection() to close connection
properly and set pc->connection to NULL on errors.

Patch by Piotr Sikora.
2012-01-30 11:12:52 +00:00
Valentin Bartenev
b06200f3dc Limit req: support for multiple "limit_req" limits. 2012-01-30 10:17:56 +00:00
Valentin Bartenev
73d0b6a721 Limit req: number of cleanup calls reduced.
Doing a cleanup before every lookup seems to be too aggressive. It can lead to
premature removal of the nodes still usable, which increases the amount of work
under a mutex lock and therefore decreases performance.

In order to improve cleanup behavior, cleanup function call has been moved right
before the allocation of a new node.
2012-01-30 10:01:39 +00:00
Valentin Bartenev
8dab3b5a39 Limit req: allocation and initialization of a new node moved to the lookup
function.

No functional changes.
2012-01-30 09:41:49 +00:00
Valentin Bartenev
5f5205ba87 Limit req: improved error handling when parsing "zone" parameter of
"limit_req_zone" directive; minimum size of zone is increased.

Previously an unsigned variable was used to keep the return value of
ngx_parse_size() function, which led to an incorrect zone size if NGX_ERROR
was returned.

The new code has been taken from the "limit_conn_zone" directive.
2012-01-30 09:26:08 +00:00
Valentin Bartenev
d4dbf6ad59 Limit req: error messages fixed. 2012-01-30 09:02:29 +00:00
Maxim Dounin
b3e461e63c Fixed AIO error handling on FreeBSD.
The aio_return() must be called regardless of the error returned by
aio_error().  Not calling it resulted in various problems up to segmentation
faults (as AIO events are level-triggered and were reported again and again).

Additionally, in "aio sendfile" case r->blocked was incremented in case of
error returned from ngx_file_aio_read(), thus causing request hangs.
2012-01-30 07:39:47 +00:00
Maxim Dounin
90a7a8f5d9 Removed ENGINE_load_builtin_engines() call.
It's already called by OPENSSL_config().  Calling it again causes some
openssl engines (notably GOST) to corrupt memory, as they don't expect
to be created more than once.
2012-01-30 07:38:27 +00:00
Valentin Bartenev
94992aa62e Fixed grammar in PCRE JIT error log message. 2012-01-24 10:20:42 +00:00
Maxim Konovalov
f8d59e33f3 Copyright updated. 2012-01-18 15:07:43 +00:00
Maxim Konovalov
8e1ef760da Version bump. 2012-01-18 15:04:17 +00:00
Maxim Konovalov
4fb388107b Version bump. 2012-01-18 14:33:17 +00:00
Valentin Bartenev
363a0c53e7 Fixed division by zero exception in ngx_hash_init().
The ngx_hash_init() function did not expect call with zero elements count,
which caused FPE error on configs with an empty "types" block in http context
and "types_hash_max_size" > 10000.

Example configuration to reproduce:

  events { }

  http {
          types_hash_max_size 10001;
          types {}
          server {}
  }
2012-01-16 12:42:07 +00:00
Maxim Dounin
b904676b5e Fixed sched_setaffinity(2) to correctly pass size.
Second argument (cpusetsize) is size in bytes, not in bits.  Previously
used constant 32 resulted in reading of uninitialized memory and caused
EINVAL to be returned on some Linux kernels.
2012-01-16 11:13:48 +00:00
Maxim Dounin
9572920af0 Fixed handling of mp4 above 2G and 32bit offsets (ticket #84). 2012-01-16 11:03:27 +00:00
Maxim Dounin
2c55914a9f Fixed proxy_cache_use_stale in "no live upstreams" case. 2012-01-16 11:01:52 +00:00
Maxim Dounin
4efcbce328 Added support for TLSv1.1, TLSv1.2 in ssl_protocols directive.
Support for TLSv1.1 and TLSv1.2 protocols was introduced in OpenSSL 1.0.1
(-beta1 was recently released).  This change makes it possible to disable
these protocols and/or enable them without other protocols.
2012-01-11 11:15:00 +00:00
Maxim Dounin
f2ef9db230 Fixed limit_req burst/nodelay inheritance (ticket #76).
The problem was introduced in r4381 (1.1.12).
2012-01-11 11:09:05 +00:00
Valentin Bartenev
b8ef9d9255 Fixed: proxy_redirect with regex might broke Refresh header.
The problem was localized in ngx_http_proxy_rewrite_redirect_regex() handler
function which did not take into account prefix when overwriting header value.
2012-01-10 15:09:45 +00:00
Ruslan Ermilov
d55ce18c95 Changed ngx_log_debugN() macros to verify the number of arguments
when built with debugging.
2012-01-10 07:28:32 +00:00
Maxim Dounin
11f09dd07d Version bump. 2011-12-27 11:56:48 +00:00
Valentin Bartenev
bc5191c7bc Added support for regex study and PCRE JIT (ticket #41) optimizations on
configuration phase.
2011-12-26 13:10:36 +00:00
Maxim Dounin
947bdfa7fe Fixed build without debug. 2011-12-26 11:33:11 +00:00
Maxim Dounin
da8a43dee9 Cache lock support for fastcgi, scgi, uwsgi. 2011-12-26 11:16:19 +00:00
Maxim Dounin
822fe46934 Cache locks initial implementation.
New directives: proxy_cache_lock on/off, proxy_cache_lock_timeout.  With
proxy_cache_lock set to on, only one request will be allowed to go to
upstream for a particular cache item.  Others will wait for a response
to appear in cache (or cache lock released) up to proxy_cache_lock_timeout.

Waiting requests will recheck if they have cached response ready (or are
allowed to run) every 500ms.

Note: we intentionally don't intercept NGX_DECLINED possibly returned by
ngx_http_file_cache_read().  This needs more work (possibly safe, but needs
further investigation).  Anyway, it's exceptional situation.

Note: probably there should be a way to disable caching of responses
if there is already one request fetching resource to cache (without waiting
at all).  Two possible ways include another cache lock option ("no_cache")
or using proxy_no_cache with some supplied variable.

Note: probably there should be a way to lock updating requests as well.  For
now "proxy_cache_use_stale updating" is available.
2011-12-26 11:15:23 +00:00
Maxim Dounin
0c88994a03 Fixed interaction of limit_rate and sendfile_max_chunk.
It's possible that configured limit_rate will permit more bytes per
single operation than sendfile_max_chunk.  To protect disk from takeover
by a single client it is necessary to apply sendfile_max_chunk as a limit
regardless of configured limit_rate.

See here for report (in Russian):
http://mailman.nginx.org/pipermail/nginx-ru/2010-March/032806.html
2011-12-26 10:51:24 +00:00
Maxim Dounin
41a77d183c Fixed throughput problems with large limit_rate.
Previous attempt to fix this was in r1658 (0.6.18), though that one wasn't
enough (it was a noop).
2011-12-26 10:49:57 +00:00
Maxim Dounin
6a56732e98 Fixed mp4 if first entry in stsc was skipped (ticket #72).
If first entry in stsc atom was skipped, and seek was to chunk boundary,
than first_chunk in the generated stsc table wasn't set to 1.
2011-12-26 10:49:03 +00:00
Valentin Bartenev
b65597ecd5 SSI: added regex captures support in the expression of the "if" command. 2011-12-25 20:08:37 +00:00
Valentin Bartenev
39f01e526f Fixed limit_conn_log_level/limit_req_log_level inheritance.
The directives did not work if there were no limit_conn/limit_req specified on
the same level.
2011-12-25 19:32:31 +00:00
Maxim Dounin
aa4492612b Proxy: made proxy_pass with variables more consistent.
If proxy_pass was used with variables and there was no URI component,
nginx always used unparsed URI.  This isn't consistent with "no variables"
case, where e.g. rewrites are applied even if there is no URI component.

Fix is to use the same logic in both cases, i.e. only use unparsed URI if
it's valid and request is the main one.
2011-12-23 16:04:09 +00:00
Maxim Dounin
d79f4523f8 Added clearing of r->valid_unparsed_uri on internal redirects.
This resolves issue with try_files (see ticket #70), configuration like

   location / { try_files $uri /index.php; }
   location /index.php { proxy_pass http://backend; }

caused nginx to use original request uri in a request to a backend.

Historically, not clearing of the r->valid_unparsed_uri on internal redirect
was a feature: it allowed to pass the same request to (another) upstream
server via error_page redirection.  Since then named locations appeared
though, and it's time to start resetting r->valid_unparsed_uri on internal
redirects.  Configurations still using this feature should be converted
to use named locations instead.

Patch by Lanshun Zhou.
2011-12-19 14:11:48 +00:00
Valentin Bartenev
c5968a998c SSI bugfix: the "if" command did not work inside the "block" command and
produced parsing errors.
2011-12-19 13:28:22 +00:00
Maxim Dounin
8a85ab8e20 Scgi: removed error if there is no Status header.
The SCGI specification doesn't specify format of the response, and assuming
CGI specs should be used there is no reason to complain.  RFC 3875
explicitly states that "A Status header field is optional, and status
200 'OK' is assumed if it is omitted".
2011-12-19 11:25:40 +00:00
Maxim Dounin
32e2038026 Scgi: removed duplicate function declaration. 2011-12-19 11:24:32 +00:00
Maxim Dounin
4d1e32d9d8 Fixed incorrect use of r->http_version in scgi module.
The r->http_version is a version of client's request, and modules must
not set it unless they are really willing to downgrade protocol version
used for a response (i.e. to HTTP/0.9 if no response headers are available).
In neither case r->http_version may be upgraded.

The former code downgraded response from HTTP/1.1 to HTTP/1.0 for no reason,
causing various problems (see ticket #66).  It was also possible that
HTTP/0.9 requests were upgraded to HTTP/1.0.
2011-12-19 11:23:16 +00:00
Maxim Dounin
afb7f22c03 Version bump. 2011-12-19 11:21:46 +00:00
Maxim Dounin
614a7ef18d Cache: only complain on long locked entries.
There have been multiple reports of cases where a real locked entry was
removed, resulting in a segmentation fault later in a worker which locked
the entry.  It looks like default inactive timeout isn't enough in real
life.

For now just ignore such locked entries, and move them to the top of the
inactive queue to allow processing of other entries.
2011-12-12 10:49:14 +00:00
Maxim Dounin
64a9f70092 Cache: handling of cache files with long headers.
There are two possible situations which can lead to this: response was
cached with bigger proxy_buffer_size value (and nginx was restared since
then, i.e. shared memory zone content was lost), or due to the race in
the cache update code (see [1]) we've end up with fcn->body_start from
a different response stored in shared memory zone.

[1] http://mailman.nginx.org/pipermail/nginx-devel/2011-September/001287.html
2011-12-12 10:47:48 +00:00
Maxim Dounin
b839e6febb Cache: obsolete code removed.
The ngx_http_cache() and ngx_http_no_cache_set_slot() functions were replaced
by ngx_http_test_predicates() and ngx_http_set_predicate_slot() in 0.8.46 and
no longer used since then.
2011-12-12 10:46:43 +00:00
Ruslan Ermilov
f28b7e8ef3 Renamed some constants to improve readability, no functional changes. 2011-12-12 10:45:05 +00:00
Valentin Bartenev
0be9554bda Proxy: added variables and regexp support to the first parameter of
the "proxy_redirect" directive.
2011-12-12 09:02:29 +00:00
Maxim Dounin
ae0e919135 Microoptimization of sendfile(2) usage under FreeBSD.
FreeBSD kernel checks headers/trailers pointer against NULL, not
corresponding count.  Passing NULL if there are no headers/trailers
helps to avoid unneeded work in kernel, as well as unexpected 0 bytes
GIO in traces.
2011-12-11 16:30:42 +00:00
Valentin Bartenev
8d3ef1a3b3 Fixed: some of $sent_http_* variables may contain header entries that actually
haven't been sent to a client.

The ngx_http_variable_headers() and ngx_http_variable_unknown_header() functions
did not ignore response header entries with zero "hash" field.

Thanks to Yichun Zhang (agentzh).
2011-12-09 16:17:12 +00:00
Valentin Bartenev
247332a1e2 Added the $https variable. 2011-12-09 14:38:11 +00:00
Valentin Bartenev
df54c36d90 SCGI: added "if_not_empty" flag support to the "scgi_param" directive. 2011-12-09 14:03:06 +00:00
Valentin Bartenev
582b5319b7 uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive. 2011-12-09 13:47:04 +00:00
Valentin Bartenev
a826eb6720 FastCGI: added "if_not_empty" flag support to the "fastcgi_param" directive. 2011-12-09 13:32:51 +00:00
Valentin Bartenev
50546b26d9 Added the ngx_http_upstream_param_set_slot(). 2011-12-09 13:19:57 +00:00
Ruslan Ermilov
59a2b77039 - Improved error message when parsing of the "buffer" parameter of the
"access_log" directive fails.

- Added a warning if "log_format" is used in contexts other than "http".
2011-12-06 21:07:10 +00:00
Valentin Bartenev
5ee62edffe Removed unused function ngx_regex_capture_count().
The function has been unused since r3326.
2011-12-06 15:49:40 +00:00
Maxim Dounin
8618370487 Fix for read_head with try_files and open_file_cache.
The of.read_ahead wasn't set in try_files code path, causing read_ahead
directive to be a nop if try_files and open_file_cache were used.
2011-12-06 13:23:37 +00:00
Maxim Dounin
08f2256b29 Version bump. 2011-12-06 13:22:32 +00:00
Valentin Bartenev
92edf47ff9 Added the "so_keepalive=" parameter to the "listen" directive.
The "so_keepalive" directive in mail module was deprecated.

Thanks to Vsevolod Stakhov for initial work.
2011-12-05 08:06:15 +00:00
Maxim Dounin
c09d65b179 Fixed AIO on Linux, broken in r4306.
Events from eventfd do not have c->write set, and the stale event
check added in r4306 causes null pointer dereference.
2011-11-29 17:27:13 +00:00
Maxim Dounin
b99492595c Version bump. 2011-11-29 17:25:31 +00:00
Maxim Dounin
a4484b1369 Added (void) as we intentionally ignore returned values.
Requested by Igor Sysoev.
2011-11-28 11:01:42 +00:00
Maxim Dounin
1d13c0dd34 Allowed add_header for proxied 206 replies.
It was working for nginx's own 206 replies as they are seen as 200 in the
headers filter module (range filter goes later in the headers filter chain),
but not for proxied replies.
2011-11-28 10:00:47 +00:00
Valentin Bartenev
1373558163 Added support for IP-literal in the Host header and request line (ticket #1).
Additional parsing logic added to correctly handle RFC 3986 compliant IPv6 and
IPvFuture characters enclosed in square brackets.

The host validation was completely rewritten. The behavior for non IP literals
was changed in a more proper and safer way:

 - Host part is now delimited either by the first colon or by the end of string
   if there's no colon. Previously the last colon was used as delimiter which
   allowed substitution of a port number in the $host variable.
   (e.g. Host: 127.0.0.1:9000:80)

 - Fixed stripping of the ending dot in the Host header when the host was also
   followed by a port number.
   (e.g. Host: nginx.com.:80)

 - Fixed upper case characters detection. Previously it was broken which led to
   wasting memory and CPU.
2011-11-28 09:15:33 +00:00
Maxim Dounin
1b9b19d7e2 Added escaping of double quotes in ngx_escape_html().
Patch by Zaur Abasmirzoev.
2011-11-25 16:36:02 +00:00
Maxim Dounin
13717da19e Unlock of shared memory zones on process crash.
If process exited abnormally while holding lock on some shared memory zone -
unlock it.  It may be not safe thing to do (as crash with lock held may
result in corrupted shared memory structure, and other processes will
subsequently crash while trying to access shared data), therefore complain
loudly if unlock succeeds.
2011-11-23 14:09:19 +00:00
Maxim Dounin
ddb7cd1c41 Fixed build without atomic operations. 2011-11-23 14:07:06 +00:00
Maxim Dounin
91ecc8f43c Added shmtx interface to forcibly unlock mutexes.
It is currently used from master process on abnormal worker termination to
unlock accept mutex (unlocking of accept mutex was broken in 1.0.2).  It is
expected to be used in the future to unlock other mutexes as well.

Shared mutex code was rewritten to make this possible in a safe way, i.e.
with a check if lock was actually held by the exited process.  We again use
pid to lock mutex, and use separate atomic variable for a count of processes
waiting in sem_wait().
2011-11-23 13:55:38 +00:00
Ruslan Ermilov
1e5f239170 Fixed "rotate" to always work when combined with "resize/crop". 2011-11-23 10:22:44 +00:00
Ruslan Ermilov
ca2cce23cc Cosmetics. 2011-11-23 10:16:30 +00:00
Igor Sysoev
79df789b47 Fix of mp4 module seeking. 2011-11-23 07:22:15 +00:00
Maxim Dounin
7f59728d5b Protection from stale write events in epoll.
Stale write event may happen if epoll_wait() reported both read and write
events, and processing of the read event closed descriptor.

Patch by Yichun Zhang (agentzh).
2011-11-22 17:02:21 +00:00
Maxim Dounin
0560ae55bc Fixed segfault on ssl servers without cert with SNI (ticket #54).
Non-default servers may not have ssl context created if there are no
certificate defined.  Make sure to check if ssl context present before
using it.
2011-11-22 16:27:45 +00:00
Ruslan Ermilov
1725621e8a Fixed "keepalive_disable".
Patch by Alexander Usov.  The bug has been introduced in r4267.
2011-11-21 07:31:59 +00:00
Maxim Konovalov
f61b7b3a83 FreeBSD 10-current has recently gotten POSIX_FADV_* macros.
A fix for the broken build applied.

Patch from Igor Sysoev.
2011-11-18 18:42:00 +00:00
Maxim Dounin
e0c1a63028 Upstream: don't cache unfinished responses.
Check if received data length match Content-Length header (if present),
don't cache response if no match found.  This prevents caching of corrupted
response in case of premature connection close by upstream.
2011-11-18 15:09:08 +00:00
Maxim Dounin
5eef168a22 Fixed flv header to match specification.
Used "\x5" in 5th byte to claim presence of both audio and video.  Used
previous tag size 0 in the beginning of the flv body (bytes 10 .. 13) as
required by specification (see http://www.adobe.com/devnet/f4v.html).

Patch by Piotr Sikora.
2011-11-18 14:41:01 +00:00
Ruslan Ermilov
777879c832 Silenced a warning for some compilers. 2011-11-16 13:27:33 +00:00
Ruslan Ermilov
bec516bec9 Now nginx uses TTL of a DNS response when calculating cache validity.
Previously it used a hardcoded value of 300 seconds.  Also added the
"valid=" parameter to the "resolver" directive that can be used to
override the cache validity time.

Patch by Kirill A. Korinskiy with minor changes.
2011-11-16 13:11:39 +00:00
Valentin Bartenev
963315aca0 Fixed incorrect counting the length of headers in a SCGI request. 2011-11-16 12:51:27 +00:00
Maxim Dounin
2b24a67268 Fixed handling of SIGWINCH/NOACCEPT signal.
After first upgrade it was ignored since r4020 (1.1.1, 1.0.9) as
ngx_daemonized wasn't set.
2011-11-15 20:35:41 +00:00
Maxim Dounin
2fd9b49334 Version bump. 2011-11-15 20:33:37 +00:00
Igor Sysoev
07bb4ed971 Introduction of simple ngx_write_stderr() instead of ngx_log_stderr()
for output of ./configure options, etc., since ngx_log_stderr() output
length is limited by 2048 characters defined as NGX_MAX_ERROR_STR.
2011-11-14 14:59:00 +00:00
Igor Sysoev
dd4490c4e4 Fix of "Content-Length" header of MP4 response if start argument was used.
Patch by Piotr Sikora.
2011-11-14 14:42:48 +00:00
Valentin Bartenev
255e20ad21 Renamed ngx_http_limit_zone_module to ngx_http_limit_conn_module. 2011-11-14 14:04:42 +00:00
Maxim Dounin
80e3cba5fd Reverted incorrect change in internal md5 (part of r3928). 2011-11-14 13:38:02 +00:00
Maxim Dounin
030523dff0 Fixed fastcgi/scgi/uwsgi_param inheritance.
The following problems were fixed:

1. Directive fastcgi_cache affected headers sent to backends in unrelated
   servers / locations (see ticket #45).

2. If-Unmodified-Since, If-Match and If-Range headers were sent to backends
   if fastcgi_cache was used.

3. Cache-related headers were sent to backends if there were no fastcgi_param
   directives and fastcgi_cache was used at server level.
2011-11-14 13:26:18 +00:00
Maxim Dounin
ca01f46103 Separate functions to merge fastcgi/scgi/uwsgi params.
No functional changes.
2011-11-14 13:24:43 +00:00
Maxim Dounin
86a851907b Fixed Upgrade header clearing with proxy_cache.
This was missed in proxy HTTP/1.1 support commit (r4127).
2011-11-14 13:21:10 +00:00
Maxim Dounin
962727b259 Fixed proxy_set_header inheritance with proxy_set_body. 2011-11-14 13:19:56 +00:00
Maxim Dounin
b5984de06b Fixed proxy_set_header inheritance with proxy_cache (ticket #45).
Headers cleared with cache enabled (If-Modified-Since etc.) might be cleared
in unrelated servers/locations without proxy_cache enabled if proxy_cache was
used in some server/location.

Example config which triggered the problem:

    proxy_set_header X-Test "test";
    server { location /1 { proxy_cache name; proxy_pass ... } }
    server { location /2 { proxy_pass ... } }

Another one:

    server {
        proxy_cache name;
        location /1 { proxy_pass ... }
        location /2 { proxy_cache off; proxy_pass ... }
    }

In both cases If-Modified-Since header wasn't sent to backend in location /2.

Fix is to not modify conf->headers_source, but instead merge user-supplied
headers from conf->headers_source and default headers (either cache or not)
into separate headers_merged array.
2011-11-14 13:18:15 +00:00
Sergey Budnevitch
66a60a62cc Fixed NGX_CONF_TAKE1/NGX_CONF_FLAG misuse. 2011-11-14 09:12:15 +00:00
Valentin Bartenev
1dbd331849 Limit zone: added the "limit_conn_zone" directive.
It supersedes old "limit_zone" directive (deprecated accordingly) and uses
syntax consistent with the "limit_req_zone" directive.
2011-11-10 16:25:08 +00:00
Valentin Bartenev
aaf5a5772f Limit zone: support for multiple "limit_conn" limits. 2011-11-10 16:08:13 +00:00
Valentin Bartenev
54660dcf74 Limit zone: rbtree lookup moved to a separate function.
No functional changes.
2011-11-10 15:51:55 +00:00
Ruslan Ermilov
2f37fbc8f9 Changed error message to be more appropriate in the imaginary
"open_file_cache max=0" case.
2011-11-10 09:13:09 +00:00
Igor Sysoev
eb499bab59 Fixed compression pointer processing in DNS response greater than 255 bytes.
Thanks to Ben Hawkes.
2011-11-09 13:54:07 +00:00
Igor Sysoev
d0bcad3445 Fix of "keepalive_disable" directive. 2011-11-08 13:48:23 +00:00
Igor Sysoev
a8963fbbcf The "image_filter_sharpen" directive. 2011-11-08 13:17:14 +00:00
Igor Sysoev
ff2bee1fa9 Ancient incomplete ngx_http_status_module removal. 2011-11-01 15:16:28 +00:00
Igor Sysoev
0d03a44aab Version bump. 2011-11-01 15:10:46 +00:00
Igor Sysoev
a2ffa56106 Silently ignoring a stale global SSL error left after disabled renegotiation. 2011-10-31 14:30:03 +00:00
Maxim Dounin
ca495238bd Fixed segfault on configuration testing with ssl (ticket #37).
The following config caused segmentation fault due to conf->file not
being properly set if "ssl on" was inherited from the http level:

http {
    ssl on;
    server {
    }
}
2011-10-31 09:57:14 +00:00
Maxim Dounin
0d59500343 Event pipe: reduced number of file buffers used.
If possible we now just extend already present file buffer in p->out chain
instead of keeping ngx_buf_t for each buffer we've flushed to disk.  This
saves about 120 bytes of memory per buffer flushed to disk, and resolves
high CPU usage observed in edge cases (due to coalescing these buffers on
send).
2011-10-31 09:54:55 +00:00
Maxim Dounin
59205ce109 Event pipe: fixes for complex protocols.
1. In ngx_event_pipe_write_chain_to_temp_file() make sure to fully write
   all shadow buffers up to last_shadow.  With this change recycled buffers
   cannot appear in p->out anymore.  This also fixes segmentation faults
   observed due to ngx_event_pipe_write_chain_to_temp() not freeing any
   raw buffers while still returning NGX_OK.

2. In ngx_event_pipe_write_to_downstream() we now properly check for busy
   size as a size of buffers, not a size of data in these buffers.  This
   fixes situations where all available buffers became busy (including
   segmentation faults due to this).

3. The ngx_event_pipe_free_shadow_raw_buf() function is dropped.  It's
   incorrect and not needed.
2011-10-31 09:53:16 +00:00
Igor Sysoev
59695881ce Decrease of log level of some SSL handshake errors. 2011-10-25 15:04:09 +00:00
Ruslan Ermilov
f12d6ceb65 Fixed port range checking. 2011-10-25 13:48:43 +00:00
Ruslan Ermilov
c5762451a9 Fixed range checking for the "somaxconn" sysctl. 2011-10-25 13:48:05 +00:00
Igor Sysoev
620718102b Support of several servers in the "resolver" directive.
Patch by Kirill A. Korinskiy.
2011-10-24 16:09:05 +00:00
Igor Sysoev
ba71972b21 Using of junk value in slab allocator similar to modern FreeBSD values. 2011-10-24 15:50:19 +00:00
Igor Sysoev
efc6ecab82 malloc() debugging on MacOSX. 2011-10-24 15:46:48 +00:00
Igor Sysoev
b9c859e6d5 FreeBSD's MALLOC_OPTIONS must be set before any malloc() call.
The bug has been introduced in r3799.
2011-10-24 12:59:01 +00:00
Maxim Dounin
ce61ff9c45 Fixed another return in unix ngx_write_chain_to_file().
Previous patch missed special case for one iovec, it needs total bytes
written to be returned as well.
2011-10-21 11:04:46 +00:00
Maxim Dounin
aecb2eda13 Fixed unix ngx_write_chain_to_file() to return total bytes written.
Previously result of last iteration's writev() was returned.  This was
unnoticed as return value was only used if chain contained only one or
two buffers.
2011-10-20 12:40:26 +00:00
Igor Sysoev
5f81070523 Fixing conflict with SDK off_t definition. 2011-10-20 07:12:45 +00:00
Igor Sysoev
1472e7964b Recent SDKs allow to build IPV6 only for Windows XP or above. 2011-10-20 07:00:04 +00:00
Maxim Dounin
b167c46ca2 Fixed "expires @time" with unknown last modified time (ticket #32). 2011-10-17 17:32:08 +00:00
Maxim Dounin
81b43370d5 Fixed "expires @00h". 2011-10-17 17:30:18 +00:00
Igor Sysoev
6242f77617 Version bump. 2011-10-17 15:39:59 +00:00
Maxim Dounin
31f5a59fae Added clearing of modules' contexts in ngx_http_named_location().
Patch by Yichun Zhang (agentzh).
2011-10-15 21:42:03 +00:00
Maxim Dounin
ba76a89d4b Fixed utf8 decode (ticket #25).
Patch by Alexey Kuts.
2011-10-13 13:56:41 +00:00
Igor Sysoev
d51bcf6f63 Skipping location rewrite phase for server null location. 2011-10-13 12:43:22 +00:00
Maxim Dounin
b713e480ca Better recheck of dead upstream servers.
Previously nginx used to mark backend again as live as soon as fail_timeout
passes (10s by default) since last failure.  On the other hand, detecting
dead backend takes up to 60s (proxy_connect_timeout) in typical situation
"backend is down and doesn't respond to any packets".  This resulted in
suboptimal behaviour in the above situation (up to 23% of requests were
directed to dead backend with default settings).

More detailed description of the problem may be found here (in Russian):
http://mailman.nginx.org/pipermail/nginx-ru/2011-August/042172.html

Fix is to only allow one request after fail_timeout passes, and
mark backend as "live" only if this request succeeds.

Note that with new code backend will not be marked "live" unless "check"
request is completed, and this may take a while in some specific workloads
(e.g. streaming).  This is believed to be acceptable.
2011-10-12 14:22:48 +00:00
Maxim Dounin
72df0f400a Clear old Location header (if any) while adding a new one.
This prevents incorrect behaviour when another redirect is issued within
error_page 302 handler.
2011-10-12 13:28:03 +00:00
Maxim Dounin
8650c1eb24 Wording fix, "many data" is incorrect.
Noted by Piotr Sikora.
2011-10-12 13:24:59 +00:00
Ruslan Ermilov
fc55962698 Fixed two minor bugs in "types" parsing code. 2011-10-12 09:36:21 +00:00
Ruslan Ermilov
b5c3336e3e Fixed grammar in a comment. 2011-10-12 09:34:53 +00:00
Ruslan Ermilov
dce7a0c00f Replaced magic constants representing default values of some directives
with appropriate #define's.
2011-10-12 09:33:43 +00:00
Ruslan Ermilov
51a2423633 Stylistic change in checking the boolean expression. 2011-10-12 09:27:34 +00:00
Igor Sysoev
bfe7be45b8 Preallocating exact number of default MIME types entries. 2011-10-12 09:19:57 +00:00
Ruslan Ermilov
c8fdda4c2f Removed old warning that suggested to use "server_name_in_redirect off"
(now the default) in place of no longer supported "server_name *".
2011-10-12 07:20:20 +00:00
Maxim Dounin
b8203e46a0 Additional headers for proxy/fastcgi/uwsgi/scgi_ignore_headers.
Now the following headers may be ignored as well: X-Accel-Limit-Rate,
X-Accel-Buffering, X-Accel-Charset.
2011-10-11 18:10:49 +00:00
Maxim Dounin
012e6b6378 Handling of Content-Encoding set from perl.
This fixes double gzipping in case of gzip filter being enabled while perl
returns already gzipped response.
2011-10-11 18:01:38 +00:00
Maxim Dounin
0f5f4cb180 Fix for socket leak with "aio sendfile" and "limit_rate".
Second aio post happened when timer set by limit_rate expired while we have
aio request in flight, resulting in "second aio post" alert and socket leak.

The patch adds actual protection from aio calls with r->aio already set to
aio sendfile code in ngx_http_copy_filter().  This should fix other cases
as well, e.g. when sending buffered to disk upstream replies while still
talking to upstream.

The ngx_http_writer() is also fixed to handle the above case (though it's
mostly optimization now).

Reported by Oleksandr V. Typlyns'kyi.
2011-10-11 18:00:23 +00:00
Maxim Dounin
b7af402cc4 Fix for connection drops with AIO.
Connections serving content with AIO to fast clients were dropped with
"client timed out" messages after send_timeout from response start.
2011-10-11 17:58:51 +00:00
Maxim Dounin
5cc1fb1d5b Autoindex: escape html in file names. 2011-10-11 17:57:41 +00:00
Maxim Dounin
6226fe3512 Autoindex: escape '?' in file names.
For files with '?' in their names autoindex generated links with '?' not
escaped.  This resulted in effectively truncated links as '?' indicates
query string start.

This is an updated version of the patch originally posted at [1].  It
introduces generic NGX_ESCAPE_URI_COMPONENT which escapes everything but
unreserved characters as per RFC 3986.  This approach also renders unneeded
special colon processing (as colon is percent-encoded now), it's dropped
accordingly.

[1] http://nginx.org/pipermail/nginx-devel/2010-February/000112.html

Reported by Konstantin Leonov.
2011-10-11 17:56:51 +00:00
Maxim Dounin
e3d6c5a33c Improved access log escaping to better protect other software.
Some character sets (notably ISO-8859-1) have C1 control characters in
upper half, make sure to escape them.

Reported by Jesus Olmos Gonzalez.
2011-10-11 17:54:38 +00:00
Igor Sysoev
0d19f020ba Fixing directive name in error message if types hash size is not enough. 2011-10-11 11:11:44 +00:00
Igor Sysoev
840ef3980c Fixing mp4 module seeking on 32-bit platforms. 2011-10-11 10:12:44 +00:00
Ruslan Ermilov
2fdb547f3a Fixed macro name. 2011-10-10 08:38:28 +00:00
Igor Sysoev
94b5460c70 Releasing memory of idle SSL connection. This saves about 34K per SSL
connection. The SSL_MODE_RELEASE_BUFFERS option is available since
OpenSSL 1.0.0d.
2011-10-07 12:15:20 +00:00
Igor Sysoev
95084f7e1c Disabling SSL compression. This saves about 300K per SSL connection.
The SSL_OP_NO_COMPRESSION option is available since OpenSSL 1.0.0.
2011-10-07 10:59:02 +00:00
Igor Sysoev
3f34960fde Version bump. 2011-10-07 10:41:13 +00:00
Ruslan Ermilov
a610127fe3 Improved ngx_parse_time() code readability. 2011-10-07 08:03:16 +00:00
Ruslan Ermilov
6e86fb02d6 Tweaked error messages. 2011-10-07 07:57:24 +00:00
Igor Sysoev
ab0078a4c8 Version bump. 2011-10-05 13:13:25 +00:00
Maxim Dounin
20139ff13a Fixed cache bypass caching of non-cacheable replies (ticket #21).
If cache was bypassed with proxy_cache_bypass, cache-controlling headers
(Cache-Control, Expires) wasn't considered and response was cached even
if it was actually non-cacheable.

Patch by John Ferlito.
2011-10-05 10:14:21 +00:00
Maxim Dounin
3aba768855 Added uwsgi_buffering and scgi_buffering directives.
Patch by Peter Smit.
2011-09-30 11:53:27 +00:00
Igor Sysoev
f3ae6a6102 Using strtod() instead of atofp() to support a lot of digits after dot in
"start" parameter value.
2011-09-30 09:18:28 +00:00
Igor Sysoev
a40e7eed30 Fix of building on platforms with 32-bit off_t. (closed #23) 2011-09-29 15:19:36 +00:00
Maxim Dounin
5cc90f309d Fixed segmentation fault with empty config on Windows.
See here for report:
http://mailman.nginx.org/pipermail/nginx-ru/2011-September/043288.html
2011-09-27 12:07:09 +00:00
Maxim Dounin
554768dabb Fix for "ssl_session_cache builtin" (broken since 1.1.1, r3993). 2011-09-27 12:06:07 +00:00
Maxim Dounin
886c6295ee Better handling of late upstream creation.
Configuration with duplicate upstream blocks defined after first use, i.e.
like

    server {
        ...
        location / {
            proxy_pass http://backend;
        }
    }

    upstream backend { ... }
    upstream backend { ... }

now correctly results in "duplicate upstream" error.

Additionally, upstream blocks defined after first use now handle various
server directive parameters ("weight", "max_fails", etc.).  Previously
configuration like

    server {
        ...
        location / {
            proxy_pass http://backend;
        }
    }

    upstream backend {
        server 127.0.0.1 max_fails=5;
    }

incorrectly resulted in "invalid parameter "max_fails=5"" error.
2011-09-27 11:18:51 +00:00
Maxim Dounin
b16918ed08 Cache: fix for sending of stale responses.
For normal cached responses ngx_http_cache_send() sends last buffer and then
request finalized via ngx_http_finalize_request() call, i.e. everything is
ok.

But for stale responses (i.e. when upstream died, but we have something in
cache) the same ngx_http_cache_send() sends last buffer, but then in
ngx_http_upstream_finalize_request() another last buffer is send.  This
causes duplicate final chunk to appear if chunked encoding is used (and
resulting problems with keepalive connections and so on).

Fix this by not sending in ngx_http_upstream_finalize_request()
another last buffer if we know response was from cache.
2011-09-27 11:17:11 +00:00
Maxim Dounin
84c58a30e6 Cache: fix for sending of empty responses.
Revert wrong fix for empty responses introduced in 0.8.31 and apply new one,
rewritten to match things done by static module as close as possible.
2011-09-27 11:15:35 +00:00
Maxim Dounin
4a3884ae56 Incorrect special case for "return 204" removed.
The special case in question leads to replies without body in
configuration like

    location / { error_page 404 /zero; return 404; }
    location /zero { return 204; }

while replies with empty body are expected per protocol specs.

Correct one will look like

    if (status == NGX_HTTP_NO_CONTENT) {

        rc = ngx_http_send_header(r);

        if (rc == NGX_ERROR || r->header_only) {
            return rc;
        }

        return ngx_http_send_special(r, NGX_HTTP_LAST);
    }

though it looks like it's better to drop this special case at all.
2011-09-27 11:14:02 +00:00
Maxim Dounin
77ca973d11 Fix for "return 202" not discarding body.
Big POST (not fully preread) to a

    location / {
        return 202;
    }

resulted in incorrect behaviour due to "return" code path not calling
ngx_http_discard_request_body().  The same applies to all "return" used
with 2xx/3xx codes except 201 and 204, and to all "return ... text" uses.

Fix is to add ngx_http_discard_request_body() call to ngx_http_send_response()
function where it looks appropriate.  Discard body call from emtpy gif module
removed as it's now redundant.

Reported by Pyry Hakulinen, see
http://mailman.nginx.org/pipermail/nginx/2011-August/028503.html
2011-09-27 11:13:00 +00:00
Maxim Dounin
ad5ef15e08 Fix for double content when return is used in error_page handler.
Test case:

   location / {
       error_page 405 /nope;
       return 405;
   }

   location /nope {
       return 200;
   }

This is expected to return 405 with empty body, but in 0.8.42+ will return
builtin 405 error page as well (though not counted in Content-Length, thus
breaking protocol).

Fix is to use status provided by rewrite script execution in case
it's less than NGX_HTTP_BAD_REQUEST even if r->error_status set.  This
check is in line with one in ngx_http_script_return_code().

Note that this patch also changes behaviour for "return 302 ..." and
"rewrite ... redirect" used as error handler.  E.g.

    location / {
        error_page 405 /redirect;
        return 405;
    }

    location /redirect {
        rewrite ^ http://example.com/;
    }

will actually return redirect to "http://example.com/" instead of builtin 405
error page with meaningless Location header.  This looks like correct change
and it's in line with what happens on e.g. directory redirects in error
handlers.
2011-09-27 11:11:30 +00:00
Maxim Dounin
bfb42ad97c Fix for incorrect 201 replies from dav module.
Replies with 201 code contain body, and we should clearly indicate it's
empty if it's empty.  Before 0.8.32 chunked was explicitly disabled for
201 replies and as a result empty body was indicated by connection close
(not perfect, but worked).  Since 0.8.32 chunked is enabled, and this
causes incorrect responses from dav module when HTTP/1.1 is used: with
"Transfer-Encoding: chunked" but no chunks at all.

Fix is to actually return empty body in special response handler instead
of abusing r->header_only flag.

See here for initial report:
http://mailman.nginx.org/pipermail/nginx-ru/2010-October/037535.html
2011-09-27 11:09:55 +00:00
Maxim Dounin
5c56f20ae7 Proxy: logging levels tuned, double logging fixed. 2011-09-25 20:04:20 +00:00
Maxim Dounin
aa12f3c7f3 Proxy: whitespaces after chunk size allowed.
Whitespaces after chunk size seems to be be allowed by the "implied *LWS" rule
and emitted by some servers.
2011-09-25 20:03:27 +00:00
Maxim Dounin
28b001f897 Upstream: clearing of u->peer.connection on close.
This fixes crashes observed with some 3rd party balancer modules.  Standard
balancer modules (round-robin and ip hash) explicitly set pc->connection
(aka u->peer.connection) to NULL and aren't affected.
2011-09-25 20:00:36 +00:00
Ruslan Ermilov
b1565cf96b Fixed error message. 2011-09-23 20:15:27 +00:00
Maxim Dounin
afe2e3d082 Fix of separate pool for upstream connections (r4117).
Pool may not be created if connection was created but rejected in connect()
call.  Make sure to check if it is here before trying to destroy it.
2011-09-20 10:00:46 +00:00
Maxim Dounin
265e51aa0b Fixed loss of chain links in ngx_event_pipe_read_upstream(). 2011-09-20 09:56:35 +00:00
Maxim Dounin
d1b9a0388d Fixed loss of chain links in fastcgi module. 2011-09-20 09:56:05 +00:00
Maxim Dounin
e4dab80e80 Fix of cpu hog in event pipe.
If client closed connection in ngx_event_pipe_write_to_downstream(), buffers
in the "out" chain were lost.  This caused cpu hog if all available buffers
were in the "out" chain.  Fix is to call ngx_chain_update_chains() before
checking return code of output filter to avoid loosing buffers in the "out"
chain.

Note that this situation (all available buffers in the "out" chain) isn't
normal, it should be prevented by busy buffers limit.  Though right now it
may happen with complex protocols like fastcgi.  This should be addressed
separately.
2011-09-20 09:55:27 +00:00
Igor Sysoev
c8df23cb29 The "worker_aio_requests" directive.
The default value is 32 AIO simultaneous requests per worker. Previously
they were hardcoded to 1024, and it was too large, since Linux allocated
them early on io_setup(), but not on request itself. So with default value
of /proc/sys/fs/aio-max-nr equal to 65536 only 64 worker processes could
be run simultaneously. 32 AIO requests are enough for modern disks even if
server runs only 1 worker.
2011-09-20 07:30:09 +00:00
Ruslan Ermilov
a823c550e4 Replaced "can not" with "cannot" and "could not" in a bunch of places.
Fixed nearby grammar errors.
2011-09-19 14:48:29 +00:00
Ruslan Ermilov
3b7ed02583 Cosmetics: replaced NGX_CONF_TAKE1 to NGX_CONF_FLAG for "sendfile"
and "chunked_transfer_encoding" directives, to be in line with all
directives taking a boolean argument.  Both flags will ensure that
a directive takes one argument.
2011-09-19 12:41:13 +00:00
Ruslan Ermilov
5d4aed0175 Overhauled diagnostic messages. 2011-09-19 12:37:22 +00:00
Igor Sysoev
aa997c0289 Fixing Linux AIO initiatialization: AIO operations are disabled if kernel
does not support them.  Previously worker just exited.
2011-09-16 13:41:52 +00:00
Igor Sysoev
4134b48b68 Fixing Linux AIO syscalls return value handling:
syscall(2) uses usual libc convention, it returns -1 on error and
sets errno. Obsolete _syscall(2) returns negative value of error.

Thanks to Hagai Avrahami.
2011-09-16 12:43:16 +00:00
Maxim Dounin
c6353a5654 Trailing space fix. 2011-09-16 12:08:52 +00:00
Maxim Dounin
44002e541f Upstream keepalive module. 2011-09-15 19:28:18 +00:00
Maxim Dounin
2fe0a7a0f6 Proxy: basic HTTP/1.1 support (including keepalive).
By default we still send requests using HTTP/1.0.  This may be changed with
new proxy_http_version directive.
2011-09-15 19:23:20 +00:00
Maxim Dounin
f2fcf11b25 Protocol version parsing in ngx_http_parse_status_line().
Once we know protocol version, set u->headers_in.connection_close to indicate
implicitly assumed connection close with HTTP before 1.1.
2011-09-15 19:22:35 +00:00
Maxim Dounin
f84c69a301 Upstream: Connection header processing. 2011-09-15 19:21:19 +00:00
Maxim Dounin
4686f30a0c Upstream: Transfer-Encoding header processing. 2011-09-15 19:20:08 +00:00
Maxim Dounin
2da36b30c3 Keepalive support in fastcgi.
By default follow the old behaviour, i.e. FASTCGI_KEEP_CONN flag isn't set
in request and application is responsible for closing connection once request
is done.  To keep connections alive fastcgi_keep_conn must be activated.
2011-09-15 19:05:23 +00:00
Maxim Dounin
05552a23a2 Keepalive support in memcached. 2011-09-15 19:04:25 +00:00
Maxim Dounin
2d6be3fe93 Upstream: keepalive flag.
This patch introduces r->upstream->keepalive flag, which is set by protocol
handlers if connection to upstream is in good state and can be kept alive.
2011-09-15 19:03:15 +00:00
Maxim Dounin
a746bab7c1 Upstream: pipe length and input_filter_init in buffered mode.
As long as ngx_event_pipe() has more data read from upstream than specified
in p->length it's passed to input filter even if buffer isn't yet full.  This
allows to process data with known length without relying on connection close
to signal data end.

By default p->length is set to -1 in upstream module, i.e. end of data is
indicated by connection close.  To set it from per-protocol handlers upstream
input_filter_init() now called in buffered mode (as well as in
unbuffered mode).
2011-09-15 19:00:47 +00:00
Maxim Dounin
ffe4f11417 Upstream: r->upstream->length type change to off_t.
Previous use of size_t may cause wierd effects on 32bit platforms with certain
big responses transferred in unbuffered mode.

Nuke "if (size > u->length)" check as it's not usefull anyway (preread
body data isn't subject to this check) and now requires additional check
for u->length being positive.
2011-09-15 18:43:19 +00:00
Maxim Dounin
e19f005daf Upstream: content_length_n API change.
We no longer use r->headers_out.content_length_n as a primary source of
backend's response length.  Instead we parse response length to
u->headers_in.content_length_n and copy to r->headers_out.content_length_n
when needed.
2011-09-15 18:33:43 +00:00
Maxim Dounin
360ed25d65 Upstream: separate pool for peer connections.
This is required to support persistent https connections as various ssl
structures are allocated from connection's pool.
2011-09-15 18:21:24 +00:00
Maxim Dounin
c42c70f478 Workaround for cpu hog on errors with cached connections.
Just doing another connect isn't safe as peer.get() may expect peer.tries
to be strictly positive (this is the case e.g. with round robin with multiple
upstream servers).  Increment peer.tries to at least avoid cpu hog in
round robin balancer (with the patch alert will be seen instead).

This is not enough to fully address the problem though, hence TODO.  We
should be able to inform balancer that the error wasn't considered fatal
and it may make sense to retry the same peer.
2011-09-15 18:12:58 +00:00
Maxim Dounin
d7c2673d3f API change: ngx_chain_update_chains() now requires pool.
The ngx_chain_update_chains() needs pool to free chain links used for buffers
with non-matching tags.  Providing one helps to reduce memory consumption
for long-lived requests.
2011-09-15 16:03:17 +00:00
Maxim Dounin
a890b313f3 Buffers reuse in chunked filter.
There were 2 buffers allocated on each buffer chain sent through chunked
filter (one buffer for chunk size, another one for trailing CRLF, about
120 bytes in total on 32-bit platforms).  This resulted in large memory
consumption with long-lived requests sending many buffer chains.  Usual
example of problematic scenario is streaming though proxy with
proxy_buffering set to off.

Introduced buffers reuse reduces memory consumption in the above problematic
scenario.

See here for initial report:
http://mailman.nginx.org/pipermail/nginx/2010-April/019814.html
2011-09-15 15:25:42 +00:00
Igor Sysoev
57b4fdb6c8 MP4 co64 atom support added. 2011-09-15 13:23:03 +00:00
Igor Sysoev
c940f5fc99 Fix of struct field name. 2011-09-15 05:15:16 +00:00
Igor Sysoev
1fc9a8dec6 Style fix. 2011-09-14 15:26:11 +00:00
Igor Sysoev
acdac73688 Fixing building by gcc-4.7. 2011-09-14 15:25:46 +00:00
Igor Sysoev
4a383594fb Version bump. 2011-09-14 15:20:01 +00:00
Igor Sysoev
9c5d25179c Fix of the previous commit: is_directio flag processing introduced in r4077
is still worthwhile.
2011-09-14 14:28:55 +00:00
Igor Sysoev
7ffb73c6b7 Bugfix: open_file_cache did not update file info on retest.
If file inode was not changed, cached file information was not updated
on retest.  As a result stale information might be cached forever if file
attributes was changed and/or file was extended.

This fix also makes obsolete r4077 change of is_directio flag handling,
since this flag is updated together with other file information.
2011-09-14 14:12:35 +00:00
Igor Sysoev
2cc42b74c7 Skipping traks with unsupported media formats. 2011-09-14 14:04:41 +00:00
Igor Sysoev
dcea2ce7d1 Fix of case when start sample does not reside on chunk boundary. 2011-09-14 05:16:20 +00:00
Ruslan Ermilov
59efbc4bcb In Mac OS X Lion, Apple deprecated the use of the system OpenSSL library
in favour of their CommonCrypto library.  This change adds a work-around
that allows nginx to still be built on Lion with OpenSSL.
2011-09-13 09:18:43 +00:00
Igor Sysoev
f824fb47fe Fix of debug message format. 2011-09-12 15:15:00 +00:00
Igor Sysoev
d44855067d Fix of codec debug message. 2011-09-12 14:54:28 +00:00
Igor Sysoev
3d9ae84bf9 Fix of error message. 2011-09-12 14:46:06 +00:00
Igor Sysoev
7e8ee656a8 Fix of error message. 2011-09-12 13:06:22 +00:00
Igor Sysoev
e07a3577a9 mp4_max_moov_size directive has been renamed to mp4_max_buffer_size. 2011-09-12 09:38:04 +00:00
Igor Sysoev
b1c79a449e bugfix of r4086: nginx could not be built without debug log. 2011-09-09 11:56:49 +00:00
Igor Sysoev
5d01ac5af3 Bugfix of r4086: directio was always enabled if mp4 file was sent as is. 2011-09-09 11:13:55 +00:00
Igor Sysoev
dde4d7e300 ngx_http_mp4_module 2011-09-09 10:22:34 +00:00
Maxim Dounin
4f65a05d18 Bugfix: open_file_cache lost is_directio flag.
On file retest open_file_cache lost is_directio if file wasn't changed.
This caused unaligned operations under Linux to fail with EINVAL.
It wasn't noticeable with AIO though, as errors wasn't properly logged.
2011-09-05 16:36:19 +00:00
Igor Sysoev
3a73e50498 Version bump. 2011-09-05 16:26:51 +00:00
Maxim Dounin
bfbbfc85df Bugfix: read event was not blocked after reading body.
Read event should be blocked after reading body, else undefined behaviour
might occur on additional client activity.  This fixes segmentation faults
observed with proxy_ignore_client_abort set.
2011-09-05 12:43:31 +00:00
Maxim Dounin
82854d0d78 Proper setting of read->eof in pipe code.
Setting read->eof to 0 seems to be just a typo.  It appeared in
nginx-0.0.1-2003-10-28-18:45:41 import (r164), while identical code in
ngx_recv.c introduced in the same import do actually set read->eof to 1.

Failure to set read->eof to 1 results in EOF not being generally detectable
from connection flags.  On the other hand, kqueue won't report any read
events on such a connection since we use EV_CLEAR.  This resulted in read
timeouts if such connection was cached and used for another request.
2011-09-01 15:10:41 +00:00
Maxim Dounin
a9e3c65d22 Proper SSL shutdown handling.
If connection has unsent alerts, SSL_shutdown() tries to send them even
if SSL_set_shutdown(SSL_RECEIVED_SHUTDOWN|SSL_SENT_SHUTDOWN) was used.
This can be prevented by SSL_set_quiet_shutdown().  SSL_set_shutdown()
is required nevertheless to preserve session.
2011-09-01 13:49:36 +00:00
Igor Sysoev
09be2f18c5 Now if client requests more ranges than "max_ranges" permits,
nginx disables ranges and returns just the source response.
2011-09-01 13:03:55 +00:00
Igor Sysoev
f560419c54 The "max_ranges" directive.
"max_ranges 0" disables ranges support at all,
"max_ranges 1" allows the single range, etc.
By default number of ranges is unlimited, to be precise, 2^31-1.
2011-08-31 09:40:55 +00:00
Igor Sysoev
e81c293289 Style fix: removal of tabs introduced in the previous commit. 2011-08-31 09:26:07 +00:00
Igor Sysoev
65b1592d02 *) fix of r4060: start value should be tested after the "found" label;
*) optimization: start value may be tested against end value only,
   since end value here may not be greater than content_length.
2011-08-30 20:34:58 +00:00
Igor Sysoev
1f3280bae2 Unsatisfiable range with start value greater than content length
was not properly skipped. The bug has been introduced in r4057.
2011-08-30 14:25:35 +00:00
Igor Sysoev
e766153451 ngx_http_range_parse() should be static. 2011-08-30 13:07:33 +00:00
Igor Sysoev
9162057731 Ranges processing small optimization. 2011-08-30 13:06:12 +00:00
Igor Sysoev
451df22b3f Now unsatisfiable ranges are processed according to RFC 2616. 2011-08-30 13:01:55 +00:00
Igor Sysoev
584703b84a Ranges processing small optimization. 2011-08-30 12:45:24 +00:00
Igor Sysoev
f2575bd878 Style fix. 2011-08-30 12:28:01 +00:00
Igor Sysoev
c2c3e3105f Now if total size of all ranges is greater than source response size,
then nginx disables ranges and returns just the source response.
This fix should not affect well-behaving applications but will defeat
DoS attempts exploiting malicious byte ranges.
2011-08-26 09:42:50 +00:00
Igor Sysoev
8b2bf08165 Cache size accounting fix: actual cache size on disk was less than
needed by sum of sizes of files loaded by worker processes themselves
while cache loader was running.

The bug has been introduced in r3900.
2011-08-25 17:29:34 +00:00
Maxim Dounin
fbc51e4c44 Better handling of various per-server ssl options with SNI.
SSL_set_SSL_CTX() doesn't touch values cached within ssl connection
structure, it only changes certificates (at least as of now, OpenSSL
1.0.0d and earlier).

As a result settings like ssl_verify_client, ssl_verify_depth,
ssl_prefer_server_ciphers are only configurable on per-socket basis while
with SNI it should be possible to specify them different for two servers
listening on the same socket.

Workaround is to explicitly re-apply settings we care about from context
to ssl connection in servername callback.

Note that SSL_clear_options() is only available in OpenSSL 0.9.8m+.  I.e.
with older versions it is not possible to clear ssl_prefer_server_ciphers
option if it's set in default server for a socket.
2011-08-23 14:36:31 +00:00
Igor Sysoev
631fa929d3 Version bump. 2011-08-23 14:22:34 +00:00
Igor Sysoev
566dfe0c7f SIGWINCH/NOACCEPT signal is disabled now in non-daemon mode.
Non-daemon mode is currently used by supervisord, daemontools and so on
or during debugging. The NOACCEPT signal is only used for online upgrade
which is not supported when nginx is run under supervisord, etc.,
so this change should not break existant setups.
2011-08-22 12:34:48 +00:00
Igor Sysoev
0d18687b03 The change in adaptive loader behaviour introduced in r3975:
now cache loader processes either as many files as specified by loader_files
or works no more than time specified by loader_threshold during each iteration.

loader_threshold was previously used to decrease loader_files or
to increase loader_timeout and this might eventually result in
downgrading loader_files to 1 and increasing loader_timeout to large values
causing loading cache for forever.
2011-08-22 10:16:49 +00:00
Maxim Dounin
de1a3e1e0c Fix buffer overrun under Windows. 2011-08-22 10:07:27 +00:00
Maxim Dounin
ec8186c733 Move SO_ACCEPTFILTER and TCP_DEFER_ACCEPT checks into configure.
NetBSD 5.0+ has SO_ACCEPTFILTER support merged from FreeBSD, and having
accept filter check in FreeBSD-specific ngx_freebsd_config.h prevents it
from being used on NetBSD.  Therefore move the check into configure (and
do the same for Linux-specific TCP_DEFER_ACCEPT, just to be in line).
2011-08-21 11:37:37 +00:00
Maxim Dounin
5a52d67a08 Fix ignored headers handling in fastcgi/scgi/uwsgi.
The bug had appeared in r3561 (fastcgi), r3638 (scgi), r3567 (uwsgi).
2011-08-19 20:11:39 +00:00
Maxim Dounin
65c32b255d Complain on invalid log levels.
Previously only first log level was required to be correct, while error_log
directive in fact accepts list of levels (e.g. one may specify "error_log ...
debug_core debug_http;").  This resulted in (avoidable) wierd behaviour on
missing semicolon after error_log directive, e.g.

    error_log /path/to/log info
    index index.php;

silently skipped index directive and it's arguments (trying to interpret
them as log levels without checking to be correct).
2011-08-18 21:48:13 +00:00
Maxim Dounin
b7fcb430c1 Upstream: properly allocate memory for tried flags.
Previous allocation only took into account number of non-backup servers, and
this caused memory corruption with many backup servers.

See report here:
http://mailman.nginx.org/pipermail/nginx/2011-May/026531.html
2011-08-18 17:04:52 +00:00
Maxim Dounin
624fbe94a2 Fixing cpu hog with all upstream servers marked "down".
The following configuration causes nginx to hog cpu due to infinite loop
in ngx_http_upstream_get_peer():

    upstream backend {
        server 127.0.0.1:8080 down;
        server 127.0.0.1:8080 down;
    }

    server {
       ...
       location / {
           proxy_pass http://backend;
       }
    }

Make sure we don't loop infinitely in ngx_http_upstream_get_peer() but stop
after resetting peer weights once.

Return 0 if we are stuck.  This is guaranteed to work as peer 0 always exists,
and eventually ngx_http_upstream_get_round_robin_peer() will do the right
thing falling back to backup servers or returning NGX_BUSY.
2011-08-18 16:52:38 +00:00
Maxim Dounin
9bc8fc4602 Fixing proxy_set_body and proxy_pass_request_body with SSL.
Flush flag wasn't set in constructed buffer and this prevented any data
from being actually sent to upstream due to SSL buffering.  Make sure
we always set flush in the last buffer we are going to sent.

See here for report:
http://nginx.org/pipermail/nginx-ru/2011-June/041552.html
2011-08-18 16:34:24 +00:00
Igor Sysoev
c4ff39ae2b Fix names of the referer hash size directives introduced in r3940. 2011-08-18 16:27:30 +00:00
Maxim Dounin
b09ceca261 Fix body with request_body_in_single_buf.
If there were preread data and request body was big enough first part
of the request body was duplicated.

See report here:
http://mailman.nginx.org/pipermail/nginx/2011-July/027756.html
2011-08-18 15:52:00 +00:00
Maxim Dounin
f48b451195 Correctly set body if it's preread and there are extra data.
Previously all available data was used as body, resulting in garbage after
real body e.g. in case of pipelined requests.  Make sure to use only as many
bytes as request's Content-Length specifies.
2011-08-18 15:27:57 +00:00
Igor Sysoev
de236d3a2c fix gzip quantity: "q=0." and "q=1." are valid values according to RFC 2011-08-05 08:51:29 +00:00
Igor Sysoev
48d17bca94 refactor gzip quantity introduced in r3981: it ignored "q=1.000" 2011-08-04 14:50:59 +00:00
Igor Sysoev
dfd81a23b2 A new fix for the case when ssl_session_cache defined, but ssl is not
enabled in any server. The previous r1033 does not help when unused zone
becomes used after reconfiguration, so it is backed out.

The initial thought was to make SSL modules independed from SSL implementation
and to keep OpenSSL code dependance as much as in separate files.
2011-08-04 11:12:30 +00:00
Igor Sysoev
c42be75569 removal of error message about %name log_format parameters,
they have been deleted long ago in 0.5.0-RELEASE
2011-08-03 16:01:36 +00:00
Igor Sysoev
7cce1cacaa fix typo introduced in r3985 2011-08-02 12:43:01 +00:00
Igor Sysoev
475a5dfcf1 bump version 2011-08-02 12:39:38 +00:00
Igor Sysoev
72a96bfdcb fix r3981 again for case "Accept-Encoding: gzip" 2011-08-01 14:38:09 +00:00
Igor Sysoev
21fd22d089 always set timer in discard body handler, this fixes the cases
when request for static file is redirected by error_page to an SSI page

patch by Maxim Dounin
2011-08-01 13:52:54 +00:00
Igor Sysoev
2505587b4d lingering_close "off|on|always"
patch by Maxim Dounin
2011-08-01 13:26:55 +00:00
Igor Sysoev
41c8a1d27f do not send RST on normal lingering close read timeout,
if reset_timedout_connection is on

patch by Maxim Dounin
2011-08-01 13:08:03 +00:00
Igor Sysoev
bd7dfe44c5 fix r3981 for case "Accept-Encoding: gzip" 2011-08-01 11:21:46 +00:00
Igor Sysoev
2f3668b59b enable lingering close for pipelined requests
patch by Maxim Dounin
2011-08-01 11:08:57 +00:00
Igor Sysoev
721f47ed3c Accept-Encoding refactoring: "gzip; q=0" support 2011-08-01 11:02:12 +00:00
Igor Sysoev
d743a2339e Accept-Encoding refactoring: test first the most common case "gzip," 2011-07-30 07:34:12 +00:00
Igor Sysoev
6652cc5962 Accept-Encoding refactoring: remove ancient MSIE 4.x test for gzip 2011-07-30 06:20:06 +00:00
Igor Sysoev
c9468026e7 test length of proxy_pass with variables
patch by Lanshun Zhou
2011-07-30 06:11:46 +00:00
Igor Sysoev
c2f852c260 update r3945 with more descriptive error message 2011-07-29 15:33:03 +00:00
Igor Sysoev
922f106582 loader_files, loader_sleep, and loader_threshold 2011-07-29 15:09:02 +00:00
Igor Sysoev
d5a25a4b97 set correct configuration file values while adding path
patch by Maxim Dounin
2011-07-25 10:22:38 +00:00
Igor Sysoev
1850ce09a1 rename ngx_http_file_cache_manager_sleep() to ngx_http_file_cache_loader_sleep()
and do not use it all in cache manager: this is a vestige of the times when
cache manager loaded cache
2011-07-25 09:45:00 +00:00
Igor Sysoev
d8ce166e2e do not close connection if cache file is too small: replace it with valid one 2011-07-24 20:04:47 +00:00
Igor Sysoev
c2cafadfa5 elimination of reading cache files by cache loader 2011-07-24 19:46:53 +00:00
Igor Sysoev
92161bac79 fix r3968 2011-07-24 19:43:52 +00:00
Igor Sysoev
6cb6fc4a09 update the previous commit:
removing dependencies on file uniq since WIN32_FIND_DATA has no such field
2011-07-24 17:36:26 +00:00
Igor Sysoev
c1250b6a49 The cache loader performs two tasks: inserting cache objects in inactivity
list and evaluating total cache size. Reading just directory is enough for
this purpose. Elimination of reading cache files saves at least one disk I/O
operation per file.

Preparation for elimination of reading cache files by cache loader:
removing dependencies on the reading:
*) cache node valid_sec and valid_msec are used only for caching errors;
*) upstream buffer size can be used instead of cache node body_start.
2011-07-24 16:47:31 +00:00
Igor Sysoev
bb389f6111 fuse two if's in one condition 2011-07-24 16:10:06 +00:00
Igor Sysoev
64d024605a style fix 2011-07-24 16:06:24 +00:00
Igor Sysoev
08b597592f do not try to reuse and save a SSL session for a peer created on the fly
by ngx_http_upstream_create_round_robin_peer(), since the peer lives
only during request so the saved SSL session will never be used again
and just causes memory leak

patch by Maxim Dounin
2011-07-22 16:30:17 +00:00
Igor Sysoev
a3741fb24d finalizing with rc == 0 in unbuffered proxy mode caused nginx to wait
for another send_timeout before actually closing client's connection
if client timed out while still talking to upstream server

patch by Maxim Dounin
2011-07-22 13:30:16 +00:00
Igor Sysoev
b0b6bcedfc fix SSL connection issues on platforms with 32-bit off_t
patch by Maxim Dounin
2011-07-22 12:53:04 +00:00
Igor Sysoev
a7ed0951e3 fix build by gcc46 with -Wunused-value option
patch by Maxim Dounin
2011-07-22 10:43:50 +00:00
Igor Sysoev
f39642a907 ECDHE support
patch by Adrian Kotelba
2011-07-20 15:42:40 +00:00
Igor Sysoev
e61ba26744 MSIE export versions are rare now, so RSA 512 key is generated on demand
and is shared among all hosts instead of pregenerating for every HTTPS host
on configuraiton phase. This decreases start time for configuration with
large number of HTTPS hosts.
2011-07-20 12:59:24 +00:00
Igor Sysoev
2551f4a55d bump version: 1.1.0 development version 2011-07-20 09:29:25 +00:00
Igor Sysoev
6c3c3bbe42 fix segfault if cache key is larger than upstream buffer size
patch by Lanshun Zhou
2011-07-19 11:24:16 +00:00
Igor Sysoev
82afb9cc86 $uid_reset 2011-07-19 11:21:50 +00:00
Igor Sysoev
a0202f26c6 fix r3756: release lock to allow other process to delete cache node
patch by Maxim Dounin
2011-07-19 10:35:02 +00:00
Igor Sysoev
99f2b9e063 fix building by MSVC 2011-07-18 15:00:05 +00:00
Igor Sysoev
87ee007022 revert r3935 and fix "stalled cache updating" alert
by freeing cache at upstream finalize phase
patch by Maxim Dounin
2011-06-28 13:26:08 +00:00
Igor Sysoev
f58154db2f referer_hash_max_size and referer_hash_bucket_size directives
patch by Witold Filipczyk
2011-06-28 10:40:44 +00:00
Igor Sysoev
8d7b1d222e use !aNULL to disable all anonymous cipher suites
patch by Rob Stradling
2011-06-27 15:47:51 +00:00
Igor Sysoev
0a860a1c1d bump version 2011-06-27 15:34:44 +00:00
Igor Sysoev
1788ec0c48 fix "stalled cache updating" alert,
when non-cachable HEAD response did not not free an expired cache node
2011-06-01 08:02:34 +00:00
Igor Sysoev
5343bf3221 revert r3875 since now map uses case sensetive regexes by default 2011-05-30 14:24:17 +00:00
Igor Sysoev
53d05b969b change ngx_http_map_find(): use case sensitive regexes 2011-05-30 12:36:17 +00:00
Igor Sysoev
36aadf7eba fix building on FreeBSD 6 or earlier against system md5 2011-05-27 13:30:53 +00:00
Igor Sysoev
e620fdac65 make built-in ngx_md5_update() interface consistent with other implemenations 2011-05-27 10:00:46 +00:00
Igor Sysoev
c4793b6505 fix building --without-http_auth_basic_module,
the bug has been introduced in r3923
2011-05-26 07:32:48 +00:00
Igor Sysoev
ce2229e2f7 bump version 2011-05-26 07:31:40 +00:00
Igor Sysoev
5dc5945ccf "$apr1", "{PLAIN}", and "{SSHA}" password methods in auth basic module
patch by Maxim Dounin
2011-05-16 14:54:50 +00:00
Igor Sysoev
ffc7271250 fix testing IPv4 address mapped to IPv6, when only IPv6 access rules are defined 2011-05-16 14:01:23 +00:00
Igor Sysoev
529b5f1938 support IPv4 mapped to IPv6 in geo module 2011-05-16 13:54:42 +00:00
Igor Sysoev
dd39f60014 support IPv4 mapped to IPv6 in geoip module 2011-05-16 13:50:58 +00:00
Igor Sysoev
868db976d7 fix debug logging 2011-05-13 10:06:56 +00:00
Igor Sysoev
0d6283918f fix a broken cached response if bypass/no_cache directive values are different,
the bug has been introduced in r3700
2011-05-13 10:05:38 +00:00
Igor Sysoev
50733a53ec geoip_org
patch by Alexander Uskov
2011-05-11 09:34:21 +00:00
Igor Sysoev
20b52bec63 fix typo 2011-05-11 09:25:37 +00:00
Igor Sysoev
dc336358ab bump version 2011-05-11 09:19:48 +00:00
Igor Sysoev
49ae93034d gdImageCopyRotated() may images of even height or width
patch by Adam Bocim
2011-05-10 12:04:57 +00:00
Igor Sysoev
e2c8ad7122 use POSIX semaphores in shmtx instead of sched_yield()
number of spinlock spins are increased twice
2011-05-10 11:39:13 +00:00
Igor Sysoev
e691d94a39 bump version 2011-05-04 12:20:32 +00:00
Igor Sysoev
eecc540da8 test zero value in an "if" directive consistently with predicates fixed in r3894
thanks to Maxim Dounin
2011-05-03 09:52:27 +00:00
Igor Sysoev
2bd01a0f01 revert r3864, it may cause kernel panic on some kernels while working with IPv6 2011-04-23 17:27:55 +00:00
Igor Sysoev
efde3eb92e fix building by gcc 4.6 without --with-debug 2011-04-23 17:25:06 +00:00
Igor Sysoev
c37192b537 style fix: remove trailing spaces 2011-04-23 13:11:17 +00:00
Igor Sysoev
ef1f33b0db Use more precise stat.st_blocks to account cache size on Unix
instead of file length rounded to a file system block size.
There is no similar way on Windows, so rounding to a cache->bsize is kept.
2011-04-22 10:06:43 +00:00
Igor Sysoev
64efecc2b5 allow to use $upstream_... variables in SSI 2011-04-21 10:07:07 +00:00
Igor Sysoev
423ee58e76 fix r3713
thanks to Igor A. Valcov
2011-04-19 12:29:16 +00:00
Igor Sysoev
b3451785fe an internal MD5 implemenation
patch by Maxim Dounin
2011-04-15 15:58:06 +00:00
Igor Sysoev
9813a1999c fix segfault in IPv6 parsing while processing invalid IPv4 address X.YYYY.Z
patch by Maxim Dounin
2011-04-15 13:50:27 +00:00
Igor Sysoev
14fe2dd94a values starting with '0' were incorrectly assumed to be false
patch by Maxim Dounin
2011-04-15 12:24:18 +00:00
Igor Sysoev
432760ee4d use MurmurHash2 for split_clients, because
its distribution is much better than CRC32's one
2011-04-15 10:59:57 +00:00
Igor Sysoev
42f1e1cb96 ngx_murmur_hash2() 2011-04-15 10:59:24 +00:00
Igor Sysoev
0bd0b2894c bump version 2011-04-15 10:58:44 +00:00
Igor Sysoev
d63104eea4 use memmove() in appropriate places 2011-04-12 08:02:46 +00:00
Igor Sysoev
d80bcbcd0f "satisfy any" disabled custom 401 error page 2011-04-11 14:17:31 +00:00
Igor Sysoev
711eeb8514 fix CPU hog in cache manager
patch by Maxim Dounin
2011-04-08 15:27:53 +00:00
Igor Sysoev
ea38fe54bd fix "image_filter rotate 180" and crop case
the bug has been introduced in r3879
2011-04-07 09:12:30 +00:00
Igor Sysoev
f352259dd6 bump version 2011-04-07 09:08:52 +00:00
Igor Sysoev
4956ac5108 reuse keepalive connections if there are no free worker connections
patch by Maxim Dounin
2011-04-04 12:26:53 +00:00
Igor Sysoev
fde7d51392 fix case when a host in fastcgi_pass, scgi_pass, and uwsgi_pass
is given by expression and refers to a defined upstream
2011-04-04 10:43:21 +00:00
Igor Sysoev
450c981ab9 image filter rotate
patch by Adam Bocim
2011-04-04 09:57:32 +00:00
Igor Sysoev
b8fb0a15a2 bump version 2011-04-04 09:46:00 +00:00
Igor Sysoev
921ac21acf map tests values in low case only, so caseless regex has no sense 2011-03-21 15:18:59 +00:00
Igor Sysoev
c9d671cd81 $time_iso8601 log variable
patch by Michael Lustfield
2011-03-16 15:46:57 +00:00
Igor Sysoev
0519b43a77 allow regex as "map" parameter 2011-03-16 15:32:31 +00:00
Igor Sysoev
32c73df97a remove semicolon, because it is already in "nginx: " prefix 2011-02-21 11:47:28 +00:00
Igor Sysoev
22434e4c72 fix warnings 2011-02-21 11:44:26 +00:00
Igor Sysoev
2a526d4969 bump version 2011-02-21 10:03:28 +00:00
Igor Sysoev
d53c836214 fix u->one_addr handling in ngx_inet_resolve_host()
patch by Maxim Dounin
2011-02-17 15:01:16 +00:00
Igor Sysoev
95899a3f19 use backlog -1 on Linux
thanks to Andrei Nigmatulin
2011-02-17 14:14:50 +00:00
Igor Sysoev
b2492255f8 always test proxy_redirect with slash, this fixes a case when nginx uses
proxy_pass "http://www", upstream redirects to "http://www.host/uri",
and nginx rewrites it as ".host/uri"
patch by Maxim Dounin
2011-02-17 11:54:35 +00:00
Igor Sysoev
4d6db4a7ab set current atime while setting mtime
patch by Andrei Nigmatulin
2011-02-11 08:02:35 +00:00
Igor Sysoev
64d5f9ba26 fix "error_page 497 https://" case
patch by Maxim Dounin
the bug has been introduced in r3782
2011-02-01 16:18:55 +00:00
Igor Sysoev
eb1a344dd3 utf8 parameter of geoip_country and geoip_city
patch by Denis F. Latypoff
2011-01-27 12:51:59 +00:00
Igor Sysoev
ab54e21633 bump version 2011-01-27 12:43:11 +00:00
Igor Sysoev
8dbc8a97dd server_name $hostname 2011-01-20 15:31:24 +00:00
Igor Sysoev
d19c93d127 style fix: remove trailing spaces 2011-01-20 15:29:53 +00:00
Igor Sysoev
cfc5c25589 move setting conf->server_name in merge phase 2011-01-20 15:15:50 +00:00
Igor Sysoev
cc878dc6ac use SwitchToThread() instead of Sleep(0), because the later
may not yield control, if there is no thread with higher priority
2011-01-20 13:06:21 +00:00
Igor Sysoev
3d86ad3f95 fix building on Fedora 14
patch by Kirill A. Korinskiy
2011-01-20 12:33:17 +00:00
Igor Sysoev
8e8251a317 fix large stderr handling without http cache
patch by Maxim Dounin
the bug has been introduced in r3461
2011-01-20 12:23:00 +00:00
Igor Sysoev
26cf2c96ea introduce 494 code "Request Header Too Large" 2011-01-20 10:37:58 +00:00
Igor Sysoev
87f744c24b use boolean expression instead of "if" 2010-12-15 14:10:33 +00:00
Igor Sysoev
f00e81d75a rename NGX_HTTP_OWN_CODES to NGX_HTTP_NGINX_CODES 2010-12-14 23:04:26 +00:00
Igor Sysoev
dc61c0a153 bump version 2010-12-14 22:54:04 +00:00
Igor Sysoev
2567c92ace allow "env" to work in the single process mode 2010-12-13 10:55:15 +00:00
Igor Sysoev
5644c43caf always run regex in server_name to get captures for IPv6 addresses,
the same fix for IPv4 addresses has been made in r2584
2010-12-12 21:13:27 +00:00
Igor Sysoev
1fdb004f52 test wildcard tail hash existance for IPv6 addresses,
the same fix for IPv4 addresses has been made in r2581
2010-12-12 21:10:59 +00:00
Igor Sysoev
7c2611a231 style fix 2010-12-12 20:11:31 +00:00
Igor Sysoev
076ad1672b remove semicolon, because it is already in "nginx: " prefix 2010-12-11 10:59:26 +00:00
Igor Sysoev
5491139caf bump version 2010-12-06 14:40:40 +00:00
Igor Sysoev
3e3ee60b99 remove SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG becuase of CVE-2010-4180 2010-12-06 11:17:03 +00:00
Igor Sysoev
ec4df838c8 "If-Unmodified-Since" support 2010-12-06 11:11:05 +00:00
Igor Sysoev
0c39c27412 fix building by msvc8 introduced by the previous commit 2010-12-02 14:20:51 +00:00
Igor Sysoev
a07d6ec39f fallback to accept() if accept4() is not implemented,
the issue has been introduced in r3787
2010-12-02 10:05:41 +00:00
Igor Sysoev
86ffd9b10f bump version 2010-11-30 13:26:21 +00:00
Igor Sysoev
f5798d8c0d fix comment 2010-11-29 19:41:53 +00:00
Igor Sysoev
bd4c8e88ee revert processing NGX_OK in rewrite phase changed in r3798,
this broke "return 204" and "return code text"
2010-11-29 19:40:54 +00:00
Igor Sysoev
c219a6f7d0 bump version 2010-11-29 19:39:26 +00:00
Igor Sysoev
c19b848976 add "nginx: " prefix when logging to the stderr 2010-11-29 15:01:06 +00:00
Igor Sysoev
a979d9fb30 move ngx_strerror_init() at the very start 2010-11-29 15:00:02 +00:00
Igor Sysoev
8c6144f022 revert processing NGX_OK and NGX_DONE in rewrite phase changed in r3634 2010-11-29 14:01:17 +00:00
Igor Sysoev
d4b08c9134 allocate last zero byte in ngx_crypt() 2010-11-29 09:23:25 +00:00
Igor Sysoev
f83d6cf0f7 style fix 2010-11-26 13:58:28 +00:00
Igor Sysoev
02677300d1 fix building by icc8 2010-11-26 13:36:36 +00:00
Igor Sysoev
6946ed75b6 keepalive_disable 2010-11-26 12:40:56 +00:00
Igor Sysoev
97d32cb169 allow variable as "map" value 2010-11-26 12:25:51 +00:00
Igor Sysoev
07335d89df use "\" to escape "default", "include", and "hostnames" values instead of "!" 2010-11-25 15:36:24 +00:00
Igor Sysoev
04e145d2da allow empty value as "map" parameter 2010-11-25 15:24:29 +00:00
Igor Sysoev
67e6bafc90 allow expressions in the first "map" parameter 2010-11-25 15:22:43 +00:00
Igor Sysoev
7f31a2098d use copied strerror() messages and autoconfigured sys_nerr value 2010-11-25 11:04:03 +00:00
Igor Sysoev
40747ad861 Linux accept4() support 2010-11-25 10:15:04 +00:00
Igor Sysoev
601ca7cd6e bump version 2010-11-24 13:41:37 +00:00
Igor Sysoev
a64b716b22 allow override redirect status in error_page 2010-10-18 10:14:00 +00:00
Igor Sysoev
c5d1790e1d change order of limit_req lookup result processing 2010-10-14 09:20:01 +00:00
Igor Sysoev
622721a598 an excess was logged as 0.000 if requests were limited without delay:
*) use a real excess value instead of non-updated limit_req rbtree node field,
*) move inactivity queue handling inside ngx_http_limit_req_lookup()
   since the node is not required outside the lookup function;

the bug has been introduced in r3184
2010-10-13 20:58:41 +00:00
Igor Sysoev
824856fc10 always update an aio_senfile connection flag accodring to a current
location configuration, this clears the flag for requests passed
via a keep-alive connection
2010-10-12 12:18:39 +00:00
Igor Sysoev
3bff22f2e2 update event flags after successful io_submit() 2010-10-12 12:11:11 +00:00
Igor Sysoev
89eae52df8 file AIO read may be posted inside loop 2010-10-12 12:06:52 +00:00
Igor Sysoev
7087d5d72a add default listen port at the end of server block parsing instead of
merge phase: otherwise the first server without an listen directive
did not become the default server if there was no explicit default server;
the bug has been introduced in r3218
2010-10-11 18:48:18 +00:00
Igor Sysoev
21dba41f5b fix testing, the bug has been introduced in r3218 2010-10-08 11:42:05 +00:00
Igor Sysoev
5fffff997f gzip_disable degradation 2010-10-04 15:03:00 +00:00
Igor Sysoev
81aa52829a ngx_http_degraded() 2010-10-04 14:59:41 +00:00
Igor Sysoev
61d5e5e67f bump version 2010-10-04 13:50:09 +00:00
Igor Sysoev
bfec9887ce nginx uses SSL mode for a listen socket with any option set,
the bug has been introduced in r3765
2010-09-28 06:50:52 +00:00
Igor Sysoev
a397c7faaa bump version 2010-09-28 06:46:58 +00:00
Igor Sysoev
f79878e5d9 allow duplicate listen ssl options 2010-09-27 11:48:12 +00:00
Igor Sysoev
49ac2b2b45 decrease resolver errors level to error 2010-09-27 11:23:45 +00:00
Igor Sysoev
8c70e67f7b worker_rlimit_core should be off_t 2010-09-15 15:24:21 +00:00
Igor Sysoev
9a62648f7b fix typo 2010-09-13 12:44:43 +00:00
Igor Sysoev
12f4da4695 discard "secure_link_expires on|off" 2010-09-06 14:19:18 +00:00
Igor Sysoev
c13a4098b7 bump version 2010-09-06 11:07:07 +00:00
Igor Sysoev
94e9aaa8ad new ngx_http_secure_link_module with secure_link, secure_link_md5, and
secure_link_expires
2010-09-02 14:37:16 +00:00
Igor Sysoev
a256afd064 fix race condition if during reconfiguration two cache managers try
to delete old inactive entries: one of them removes a entry just locked by
other manager from the queue and the rbtree as long inactive entry,
causes the latter manager to segfault leaving cache mutex locked,
the bug has been introduced in r3727
2010-09-02 14:31:47 +00:00
Igor Sysoev
3730543c26 gzip_disable msie6 ignored other patterns 2010-09-02 14:02:57 +00:00
Igor Sysoev
31e6fc82cc gzip_disable compiled always the first pattern only 2010-09-02 14:01:58 +00:00
Igor Sysoev
4db3b3e2c4 gzip_disable msie6 did not inherited if nginx was built without PCRE 2010-09-02 13:54:28 +00:00
Igor Sysoev
8a9f761927 add "Global\" prefix for signal events 2010-09-02 13:49:05 +00:00
Igor Sysoev
2cb30f153f the -q switch 2010-09-02 13:43:02 +00:00
Igor Sysoev
f7dd767e57 if a location is specified by regex, then always compile an "alias",
even into one static string script: this elimates testing this
too specific case inside ngx_http_map_uri_to_path()
2010-08-26 12:33:08 +00:00
Igor Sysoev
f380df5e20 bump version 2010-08-25 12:30:08 +00:00
Igor Sysoev
d39b9ec19d image_filter_jpeg_quality supports variables 2010-08-06 15:55:05 +00:00
Igor Sysoev
7268cc8c6e zero fcn->updating after node allocation 2010-08-04 13:34:23 +00:00
Igor Sysoev
2b74841a4f error status codes could be cached for next request only,
the bug has been introduced in r3712
2010-08-04 12:55:27 +00:00
Igor Sysoev
541d8c698a we can free GeoIPRecord just after GeoIP_region_name_by_code(),
because it returns a statically allocated string
2010-08-03 18:38:08 +00:00
Igor Sysoev
a999586594 fix segfault, the bug has been introduced in r3738 2010-08-03 18:27:56 +00:00
Igor Sysoev
6dd6aefaa7 bump version 2010-08-03 18:24:18 +00:00
Igor Sysoev
395f35e5fa $geoip_region_name 2010-08-03 15:01:34 +00:00
Igor Sysoev
dc87ab5a69 $geoip_dma_code and $geoip_area_code 2010-08-03 14:19:49 +00:00
Igor Sysoev
41212d27fa fix fastcgi_split_path_info, if URI was not fully captured 2010-08-03 13:35:48 +00:00
Igor Sysoev
81cd5e4f6f *) make code consistent to fastcgi, etc
*) remove STUB comment
2010-08-03 12:59:14 +00:00
Igor Sysoev
e4994fbacb use NULL instead of 0 2010-08-03 12:53:06 +00:00
Igor Sysoev
b16b8ddae6 delete surplus assignment 2010-08-03 09:42:53 +00:00
Igor Sysoev
90f95522a5 inherit proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass inside
a limit_except block if no handler was defined for the block
2010-08-03 09:24:25 +00:00
Igor Sysoev
0ec5492189 ngx_http_conf_get_module_srv_conf() and ngx_http_conf_get_module_loc_conf()
may be used at merge phase
2010-08-02 15:28:04 +00:00
Igor Sysoev
6d9d07b16a fix directive type 2010-08-02 12:47:52 +00:00
Igor Sysoev
029299aaa4 change logic slightly 2010-08-02 12:34:15 +00:00
Igor Sysoev
c7b2e2a570 change order 2010-08-02 12:32:33 +00:00
Igor Sysoev
2108fabea2 *) delete cache key node after a cache file removal
*) move fileless cache key node removal in ngx_http_file_cache_delete()
2010-08-02 12:27:58 +00:00
Igor Sysoev
0e0e0af51b escape ";" in arguments 2010-07-30 13:25:19 +00:00
Igor Sysoev
1cd46b88a4 count cache key node usage for cached error statuses 2010-07-30 12:41:55 +00:00
Igor Sysoev
09ce1e2d89 do not free unused cache node if cache min_uses > 1,
the bug has been introduced in r3695, r3708, r3711
2010-07-30 10:20:08 +00:00
Igor Sysoev
10f8d5d74e return 415 on too big image in image filter 2010-07-29 15:40:03 +00:00
Igor Sysoev
7c50789e2a change default server_name_in_redirect value to off,
since default server_name is empty
2010-07-29 10:01:31 +00:00
Igor Sysoev
a69cf2d005 use an empty name as default server_name instread of hostname 2010-07-29 10:00:04 +00:00
Igor Sysoev
e8cf60da34 allow server_name "" as the first name 2010-07-29 09:55:54 +00:00
Igor Sysoev
6b45b065fe decrease SSL handshake error level to info 2010-07-29 09:30:15 +00:00
Igor Sysoev
6f2796af04 bump version 2010-07-29 08:10:22 +00:00
Igor Sysoev
9135a0e022 move debug logging inside ngx_http_file_cache_free() 2010-07-28 15:56:56 +00:00
Igor Sysoev
14c95f99ac fix $request_time for subrequests 2010-07-28 15:51:50 +00:00
Igor Sysoev
406a68003c several changes in cache cleanup handling:
*) now ngx_http_file_cache_cleanup() uses ngx_http_file_cache_free()
*) ngx_http_file_cache_free() interface has been changed to accept r->cache
   ngx_http_file_cache_cleanup() must use r->cache, but not r, because
   there can be several r->cache's during request processing, r->cache may
   be NULL at request finalising, etc.
*) test if updating request does not complete correctly
2010-07-28 15:49:34 +00:00
Igor Sysoev
18b36e5035 fix r3708 and r3695: valid_sec is set only for caching error status codes 2010-07-27 19:11:17 +00:00
Igor Sysoev
6af21b7cda fix r3707: cache node should be freed be a response is not cached 2010-07-27 15:26:33 +00:00
Igor Sysoev
3cf3100977 fix typo 2010-07-27 13:04:13 +00:00
Igor Sysoev
4b7637adb6 fix r3695: this commit
*) freed valid keys zone node
*) and did not decrease cache size, so cache manager process ete CPU time,
   if cache checking max_size was enabled
2010-07-27 11:22:59 +00:00
Igor Sysoev
f297d0dd27 an intercepted error code was not cached 2010-07-19 15:31:46 +00:00
Igor Sysoev
cc963cd7e2 style fix 2010-07-19 15:29:16 +00:00
Igor Sysoev
b1327bd842 initialize r->cache->file.fd with NGX_INVALID_FILE 2010-07-19 15:28:22 +00:00
Igor Sysoev
1daef7d1b0 bump version 2010-07-19 15:27:06 +00:00
Igor Sysoev
47f5f947bc add warnings for proxy_no_cache and fastcgi_no_cache 2010-07-19 09:55:43 +00:00
Igor Sysoev
f7d659aa52 proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass 2010-07-19 09:36:04 +00:00
Igor Sysoev
6a47b43234 rename ngx_http_file_cache_create() to ngx_http_file_cache_new() 2010-07-16 10:01:49 +00:00
Igor Sysoev
9aa3d7f667 ngx_http_file_cache_create() 2010-07-15 14:01:02 +00:00
Igor Sysoev
9e9cbee81e ngx_http_file_cache_name() 2010-07-15 13:46:32 +00:00
Igor Sysoev
0e73a5bfb7 style fix 2010-07-15 13:10:05 +00:00
Igor Sysoev
85992f9eb3 delete empty cache zone node if we could not get response to cache 2010-07-15 13:08:51 +00:00
Igor Sysoev
4769d10604 fix scgi_no_cache and uwsgi_no_cache initialization 2010-07-14 11:29:19 +00:00
Igor Sysoev
f3870c66df use ngx_http_test_predicates(), ngx_http_set_predicate_slot()
delete ngx_http_cache(), ngx_http_no_cache_set_slot()
2010-07-14 11:15:45 +00:00
Igor Sysoev
7fc29052e8 ngx_http_test_predicates(), ngx_http_set_predicate_slot() 2010-07-14 11:13:59 +00:00
Igor Sysoev
e48f042f40 bump version 2010-07-14 11:09:56 +00:00
Igor Sysoev
5a19097c9b allow setfib=0 2010-07-13 10:17:09 +00:00
Igor Sysoev
618703b5b6 use xmlSAXHandler._private field to store xslt filter context 2010-07-12 12:52:01 +00:00
Igor Sysoev
a2d9995ca1 fix building by msvc7 2010-07-08 16:17:11 +00:00
Igor Sysoev
f9dd541edb fix typo 2010-07-08 14:02:09 +00:00
Igor Sysoev
40b4ba1663 style fix 2010-07-08 13:49:21 +00:00
Igor Sysoev
7aa1f5bf4a update r->buffered after processing SSI command,
the bug has been probably introduced in r2378
2010-07-07 10:17:19 +00:00
Igor Sysoev
a2e846242f bump version 2010-07-07 10:09:44 +00:00
Igor Sysoev
0bd7a7d894 listen setfib=X 2010-07-05 13:49:16 +00:00
Igor Sysoev
1a5d7553da fix case of partially matched patterns on buffer border in sub_filter 2010-07-05 13:45:10 +00:00
Igor Sysoev
a5ee005a27 fix recognition of SSLv2 Client Hello Packet large than 255 bytes 2010-07-05 13:35:20 +00:00
Igor Sysoev
802bc23574 try to use C99 variadic macros first:
AIX 5.3's XL C has problems with GCC style variadic macros
2010-07-05 13:02:25 +00:00
Igor Sysoev
ee37271a0f fix building by owc12: GetLongPathName() is available since Win2K only 2010-07-05 12:47:35 +00:00
Igor Sysoev
497c13774d HP/UX uses EWOULDBLOCK instead of EAGAIN 2010-07-03 20:16:55 +00:00
Igor Sysoev
0cb0c67e3a do not use a cache headers set to hide 2010-07-02 10:05:40 +00:00
Igor Sysoev
0bd1809f05 treat Set-Cookie as a header that forbids caching 2010-07-02 09:49:27 +00:00
Igor Sysoev
9a00d69413 update the previous commit 2010-07-02 09:28:50 +00:00
Igor Sysoev
7e14b50c28 use shared ngx_http_upstream_ignore_headers_masks[] 2010-07-02 09:25:38 +00:00
Igor Sysoev
187538d1eb bump version 2010-07-01 12:56:32 +00:00
Igor Sysoev
fb7b45d20e remove r->zero_body unused since the previous commit 2010-06-30 14:42:15 +00:00
Igor Sysoev
ffcae99251 Fix processing
error_page 502 504 /zero;
    location = /zero { return 204; }

The bug has been introduced in r3634.
The fix also allow to use:
    error_page 502 504 = /zero;
    location = /zero { return 200; }

This case still does not work:
    error_page 502 504 /zero;
    location = /zero { return 200; }
2010-06-30 14:39:28 +00:00
Igor Sysoev
bcd78e22e9 change logic introduced in r3649:
*) now $uid_set is cacheable again
*) allow to see at any processing stage that uid cookie is remarked
2010-06-30 14:30:55 +00:00
Igor Sysoev
178cd2da2b style fix: remove tabs 2010-06-30 14:28:54 +00:00
Igor Sysoev
6db47f4c81 set uid values for main request only 2010-06-30 13:15:20 +00:00
Igor Sysoev
ce03ba019e fix IPv6 listen socket handling while reconfiguring 2010-06-30 12:01:56 +00:00
Igor Sysoev
c31c38b95e fix ngx_write_file() buf 2010-06-30 10:33:02 +00:00
Igor Sysoev
ffcc2f4a9e test binary geo range base size 2010-06-30 10:13:51 +00:00
Igor Sysoev
3b0ddc2097 test the second binary geo range base existence 2010-06-30 10:12:46 +00:00
Igor Sysoev
e3d88fb8eb test binary geo ranges base only for ranges 2010-06-30 10:05:56 +00:00
Igor Sysoev
4655c721e8 test binary gep range base mtime 2010-06-30 10:02:05 +00:00
Igor Sysoev
edf29ef8cd binary geo ranges base cache 2010-06-29 16:06:20 +00:00
Igor Sysoev
865db9bbf3 ngx_create_file_mapping() 2010-06-29 15:18:50 +00:00
Igor Sysoev
325bd4ea98 change duplicate default geo range processing 2010-06-29 13:36:16 +00:00
Igor Sysoev
a81a383053 fix building without IPv6 after the previous commit 2010-06-25 13:17:33 +00:00
Igor Sysoev
80dd7e5015 Now $uid_set may be used at any time, r2013 states the same is wrong.
Besides, now $uid_set is not cacheable and may have two values:
before and after header filter processing.
This allows to log case, when uid cookie is remarked.
2010-06-25 12:16:31 +00:00
Igor Sysoev
55c3f1b31b make logic more clear 2010-06-25 12:06:37 +00:00
Igor Sysoev
23d053fa97 delete stale comments 2010-06-25 12:05:12 +00:00
Igor Sysoev
70485d6b7c eliminate a number of ranges: about 18,000 /16 networks are empty,
this change saves about 70K/140K on 32/64-bit platforms
2010-06-24 15:26:05 +00:00
Igor Sysoev
daab61e40c fix a bug when ngx_cpymem() returns a cast type:
p = (type *) ngx_cpymem(...)
2010-06-24 15:17:06 +00:00
Igor Sysoev
e3693e3b37 break cycle early 2010-06-24 13:16:19 +00:00
Igor Sysoev
aa6936e61a style fix 2010-06-23 16:34:54 +00:00
Igor Sysoev
0923d08148 change ngx_http_variable_value_node_t to more generic ngx_str_node_t 2010-06-23 15:31:33 +00:00
Igor Sysoev
2c72df5ed4 bump version 2010-06-23 14:49:57 +00:00
Igor Sysoev
ee5f9e50b9 ngx_http_scgi_module 2010-06-18 15:51:14 +00:00
Igor Sysoev
4115de9fe3 Test regex location if URI matches exactly to non-exact location.
Revert a feature introduced in r2028. The feature confuses mostly,
the only gain was not to test regex for a frequent request such as
"/" in "locaiton /".
2010-06-18 15:38:31 +00:00
Igor Sysoev
082d9965a3 use ngx_http_send_response() in empty_gif 2010-06-18 15:17:07 +00:00
Igor Sysoev
b2ee47c0c7 add files missed in the previuos commit 2010-06-18 15:16:18 +00:00
Igor Sysoev
4c1b0770ca return code text 2010-06-18 15:15:20 +00:00
Igor Sysoev
01213e18a7 ngx_http_send_response() 2010-06-18 15:08:44 +00:00
Igor Sysoev
ebd883092b 303 See Other 2010-06-18 14:58:52 +00:00
Igor Sysoev
0f6ae5906d style fix 2010-06-15 15:30:00 +00:00
Igor Sysoev
2515f8efe9 fix r3628 2010-06-15 15:27:06 +00:00
Igor Sysoev
1cc1b311af make code more obviuos 2010-06-15 15:21:37 +00:00
Igor Sysoev
54b35b009a use ngx_http_parse_status_line() 2010-06-15 15:15:06 +00:00
Igor Sysoev
0aae446c7c ngx_http_parse_status_line() 2010-06-15 15:13:34 +00:00
Igor Sysoev
bef315509b update the previous commit 2010-06-15 15:09:18 +00:00
Igor Sysoev
85fe9bf6b1 support CGI-style response 2010-06-15 14:30:13 +00:00
Igor Sysoev
68294d776d style fix 2010-06-15 12:45:33 +00:00
Igor Sysoev
dede73dda9 bump version 2010-06-15 12:41:13 +00:00
Igor Sysoev
da7b5e15de allow spaces in URI 2010-06-15 09:31:19 +00:00
Igor Sysoev
d50e53e675 do not free() stack allocated buffer 2010-06-14 18:09:52 +00:00
Igor Sysoev
ea16b14cc5 PATCH method 2010-06-10 11:08:28 +00:00
Igor Sysoev
34cd1cc656 allow Destination URL without host 2010-06-10 08:17:16 +00:00
Igor Sysoev
f0bf9956dc delete empty Server and Date header used only in proxy mode 2010-06-08 19:33:53 +00:00
Igor Sysoev
a17adae005 change variable names 2010-06-08 16:15:47 +00:00
Igor Sysoev
741caead25 delete surplus flush 2010-06-08 13:43:20 +00:00
Igor Sysoev
cd04da475d do not try to calculate procent sum if there was an error 2010-06-08 09:06:57 +00:00
Igor Sysoev
27b54fda94 delete useless code 2010-06-07 14:37:56 +00:00
Igor Sysoev
82e1933529 fix rewritten Refresh header length 2010-06-07 14:33:50 +00:00
Igor Sysoev
1f5cf36a27 202 Accepted status code 2010-06-07 13:38:39 +00:00
Igor Sysoev
7935d4bff7 bump version 2010-06-07 13:34:56 +00:00
Igor Sysoev
4cf7f2727d fix "/dir/%3F../" and "/dir/%23../" cases 2010-06-04 16:05:55 +00:00
Igor Sysoev
04e1156d2e test default NTFS stream "::$DATA" 2010-06-04 15:37:49 +00:00
Igor Sysoev
1f07392c42 *) delete no longer used unix domain sockets
*) fix unix domain socket comparison
2010-06-04 13:34:23 +00:00
Igor Sysoev
bf8f69cf74 uwsgi cache 2010-06-04 12:55:01 +00:00
Igor Sysoev
45cb0a086e uwsgi_bind 2010-06-04 12:32:08 +00:00
Igor Sysoev
b9579381b5 allow uwsgi_param to override client headers using HTTP_ parameters 2010-06-04 12:26:27 +00:00
Igor Sysoev
36e11cecb1 uwsgi_store 2010-06-04 11:31:01 +00:00
Igor Sysoev
6b373a96b1 add uwsgi_param and client request headers debug logging 2010-06-04 10:03:57 +00:00
Igor Sysoev
e5d453228e do not pass if-... headers for cacheable fastcgi responses 2010-06-04 09:17:09 +00:00
Igor Sysoev
ca9259c0a5 rename variable to conform to the next commit 2010-06-03 16:42:07 +00:00
Igor Sysoev
17483d5bfb use local headers_names array instead of stored in configuration
and allocate its elements from temporary pool
2010-06-03 14:50:59 +00:00
Igor Sysoev
a4c6e7889c allow fastcgi_param to override client headers using HTTP_ parameters 2010-06-03 14:41:30 +00:00
Igor Sysoev
62a0aa3512 add client request headers debug logging in fastcgi 2010-06-03 13:49:59 +00:00
Igor Sysoev
1cefa519d2 remove the special static fastcgi_param values processing,
because it is anyway very seldom case
2010-06-02 15:08:29 +00:00
Igor Sysoev
7a3edc0171 style fix 2010-06-01 20:27:03 +00:00
Igor Sysoev
66ba32c879 improve uwsgi_string processing 2010-06-01 20:24:30 +00:00
Igor Sysoev
b36e5a7952 delete unneeded declaration 2010-06-01 20:23:14 +00:00
Igor Sysoev
4ddb52551c delete unused ngx_http_uwsgi_add_variables() 2010-06-01 20:21:56 +00:00
Igor Sysoev
c1f3d6edb7 improve uwsgi_modifierX processing:
*) use ngx_conf_set_num_slot()
*) check bounds
*) check duplicates
2010-06-01 20:19:57 +00:00
Igor Sysoev
d0aa4ca258 remove LICENSE text 2010-06-01 19:57:52 +00:00
Igor Sysoev
26b621dd67 style fix 2010-06-01 17:46:01 +00:00
Igor Sysoev
e45b892e7b ./configure --http-uwsgi-temp-path=PATH 2010-06-01 17:44:51 +00:00
Igor Sysoev
dc4b53fe61 fix the previous commit when value is static string: remove the special
static values processing, because it is anyway very seldom case
2010-06-01 17:30:23 +00:00
Igor Sysoev
1089957488 remove useless copy: key name should be just copied before value length 2010-06-01 17:25:36 +00:00
Igor Sysoev
4c9c518bbf simplify binary little endian length processing 2010-06-01 17:04:56 +00:00
Igor Sysoev
94be6be50a use ngx_str_set() and ngx_str_null() 2010-06-01 16:12:00 +00:00
Igor Sysoev
a754521af5 fix copyrights 2010-06-01 16:10:05 +00:00
Igor Sysoev
670cdbba61 fix style, some names, and building by MSVC8 2010-06-01 16:00:42 +00:00
Igor Sysoev
6d7beea1ce style fix: remove tabs and trailing spaces 2010-06-01 15:55:04 +00:00
Igor Sysoev
3a881d30b5 import original ngx_http_uwsgi_module version 2010-06-01 15:53:11 +00:00
Igor Sysoev
1a310e39de bump version 2010-06-01 15:20:14 +00:00
Igor Sysoev
23f904ea06 fix IPv6 and Unix domain sockets inheritance while online upgrade 2010-05-31 14:49:11 +00:00
Igor Sysoev
11f4ad3ec2 fix building by ICC8, the bug had been introduced in r3476 2010-05-31 14:44:17 +00:00
Igor Sysoev
a5eefbc174 fix handling an inherited alias in inclusive location 2010-05-31 14:41:54 +00:00
Igor Sysoev
34ab21c53a fix a try_files/alias case when alias uses captures and
try_files  .html  ""  /  =404;
2010-05-27 13:44:22 +00:00
Igor Sysoev
ef0fae4279 do not add tested file to a location regex string,
instead, set URI to the tested file, or keep URI unchanged,
if the tested file is a directory,
the later allows to handle a directory autoredirect
2010-05-27 13:24:19 +00:00
Igor Sysoev
098d58ec83 fix the previous commit 2010-05-27 13:15:24 +00:00
Igor Sysoev
6e884ba19a improve debug logging: "try to use file/dir" 2010-05-27 13:09:09 +00:00
Igor Sysoev
9434ae59e8 bump version 2010-05-27 12:55:05 +00:00
Igor Sysoev
de0b1d6f12 remove r->zero_in_uri 2010-05-24 12:35:10 +00:00
Igor Sysoev
9b2763a245 proxy_no_cache and fastcgi_no_cache 2010-05-24 11:01:05 +00:00
Igor Sysoev
fbb262533f fix delay in limit_req 2010-05-24 07:43:39 +00:00
Igor Sysoev
1a26a18f64 autodetect redirect if URI is rewritten to a string starting with $scheme 2010-05-23 19:36:12 +00:00
Igor Sysoev
f5f4126574 delete warnings of proxy_upstream_max_fails, proxy_upstream_fail_timeout,
fastcgi_upstream_max_fails, fastcgi_upstream_fail_timeout,
memcached_upstream_max_fails, and memcached_upstream_fail_timeout
directives obsolete since 0.5.0 version
2010-05-20 11:46:01 +00:00
Igor Sysoev
ec94491f0c allow to use $uid_got in SSI and perl module 2010-05-18 16:24:56 +00:00
Igor Sysoev
58e1f27d2b bump version 2010-05-18 16:20:02 +00:00
Igor Sysoev
6814f42473 fix SSI include stub for valid empty responses 2010-05-14 12:18:44 +00:00
Igor Sysoev
402b2f07c2 do not cache response if it has "no-store" or "private"
in "Cache-Control" header
2010-05-14 12:04:58 +00:00
Igor Sysoev
05b1a8f1e3 ngx_str_set() and ngx_str_null() 2010-05-14 09:56:37 +00:00
Igor Sysoev
328df7a5cc use ngx_min() and ngx_max() 2010-05-14 09:55:33 +00:00
Igor Sysoev
5739072cfe fix segfault: ngx_http_upstream_cleanup() cleans r->cleanup,
the bug had been introduced in r3419
2010-05-14 09:22:58 +00:00
Igor Sysoev
fadd4bd25c ngx_http_split_clients_module 2010-05-14 09:02:10 +00:00
Igor Sysoev
d2b687cf3f ngx_atofp() 2010-05-14 09:01:30 +00:00
Igor Sysoev
6884183ad9 allow hash key values more than 255 bytes, it does not actually increase mean
hash element size, because due to aligning a byte after key is not used
anyway in 3/4 cases on 32-bit platforms and in 7/8 cases on 64-bit platforms
2010-05-13 12:52:45 +00:00
Igor Sysoev
980220ffaf style fix: remove blank line 2010-05-13 10:22:48 +00:00
Igor Sysoev
ff6adfd740 style fix: remove blank line 2010-05-12 15:56:54 +00:00
Igor Sysoev
50af406144 fix rounding issues in %f format 2010-05-12 13:13:11 +00:00
Igor Sysoev
503b9716c5 use double in %f format to allow %.15f precision 2010-05-12 13:12:31 +00:00
Igor Sysoev
ab4c0d3628 Zimbra IMAP server may return only 4 bytes: "+ \r\n" 2010-04-23 09:53:52 +00:00
Igor Sysoev
dce9672ca6 bump version 2010-04-23 08:14:57 +00:00
Igor Sysoev
3ec15dd090 use lstat() for WebDAV DELETE, COPY, and MOVE to handle symlinks 2010-04-22 17:15:42 +00:00
Igor Sysoev
fa7d06ee4f change processing variables accessed by SSI and perl module:
*) the indexed variables are always flushed
*) never show warning for not found variables
2010-04-22 14:02:45 +00:00
Igor Sysoev
185a5d1726 make $arg_ variables non-cacheable 2010-04-22 13:35:30 +00:00
Igor Sysoev
e003988f87 do not log misleading errno in "not a regular file" error 2010-04-21 16:01:52 +00:00
Igor Sysoev
bfc8b78f57 use non-blocking open() not to hang on FIFO files, etc. 2010-04-21 15:59:36 +00:00
Igor Sysoev
ece10ddcf5 do not store an encoded variable value as a new cached variable value 2010-04-21 14:58:21 +00:00
Igor Sysoev
6b55b4b520 fix building without HTTP cache, the bug had been introduced in r3461 2010-04-06 11:49:36 +00:00
Igor Sysoev
231856b913 bump version 2010-04-02 14:18:23 +00:00
Igor Sysoev
502252d43a MSVC8 compatibility with OpenSSL 1.0.0 2010-04-01 15:18:29 +00:00
Igor Sysoev
6bdcc58a9c revert partially r1555 and fix the error "memcached sent invalid trailer" 2010-04-01 15:16:22 +00:00
Igor Sysoev
170a54f326 escape ampersand in argument while rewrite 2010-04-01 12:45:59 +00:00
Igor Sysoev
07db3a4163 chunked_transfer_encoding 2010-04-01 10:18:00 +00:00
Igor Sysoev
569f95818b do not add a port in redirect if we listen on unix domain socket 2010-03-31 13:30:50 +00:00
Igor Sysoev
d08b65ca61 do not set file time in ngx_copy_file() if the time is -1,
this fixes an issue when file is moved across devices
2010-03-30 14:15:25 +00:00
Igor Sysoev
86f791e090 fix comments 2010-03-26 21:17:26 +00:00
Igor Sysoev
f59ae65fa4 use "rep; nop" instead of "pause" on Solaris/amd64 2010-03-26 13:38:41 +00:00
Igor Sysoev
b45498c3de fix a comment and a style fix 2010-03-26 11:27:32 +00:00
Igor Sysoev
aed1ac1e68 reset a parsing state to parse correctly an upstream response,
if 400 or 414 response has been redirected to upstream
2010-03-25 13:27:52 +00:00
Igor Sysoev
6d45d8a50d *) introduce ngx_time_sigsafe_update() to update the error log time only
*) change ngx_time_update() interface
2010-03-25 09:10:10 +00:00
Igor Sysoev
2f916a9721 *) use previously cached GMT offset value to update time from a signal handler
*) change ngx_time_update() interface since there are no notification methods
   those return time
2010-03-13 18:08:07 +00:00
Igor Sysoev
b80f68aeda do not update time in the timer signal handler,
since localtime_r() is not Async-Signal-Safe function
2010-03-12 14:31:47 +00:00
Igor Sysoev
9eaabc69ca use sys_errlist[] in signal handler instead
of non Async-Signal-Safe strerror_r()
2010-03-12 11:15:26 +00:00
Igor Sysoev
7fa1c07896 "proxy_redirect default" may not be used if a proxy_pass uses variables 2010-03-10 14:41:49 +00:00
Igor Sysoev
931d88c7c1 fix proxy_redirect name in error message 2010-03-10 14:37:18 +00:00
Igor Sysoev
7e3fdc4e8e fix segfault if there was non cached large FastCGI stderr output before header,
the bug had been introduced in r3461
2010-03-10 13:51:47 +00:00
Igor Sysoev
1c9f74852f bump version 2010-03-10 13:49:17 +00:00
Igor Sysoev
e71f39932f add OpenSSL_add_all_algorithms(), this fixes the error
"ASN1_item_verify:unknown message digest algorithm" occurred if
client certificate is signed using sha256WithRSAEncryption
2010-03-03 16:23:14 +00:00
Igor Sysoev
1ee4b09091 make $request_method non-cacheable 2010-03-03 16:14:07 +00:00
Igor Sysoev
ff1a888caf remove code disabled since 0.1.29 version 2010-03-03 15:14:04 +00:00
Igor Sysoev
e0538991ff use a right "Location" header name, however, it did not harm,
since ngx_http_variable_sent_location() never use key name field
2010-03-03 15:08:06 +00:00
Igor Sysoev
593dec8b35 fix cached FastCGI response with large stderr output before header 2010-03-03 10:43:38 +00:00
Igor Sysoev
750a65ef84 allow HTTPS referers 2010-03-03 10:21:12 +00:00
Igor Sysoev
f953436886 compare long file names in case-insensitive mode,
the bug had been introduced in r3418
2010-03-03 10:05:54 +00:00
Igor Sysoev
416fc7aac7 Set SSL session context for "ssl_session_cache none".
This fixes a bug when client certficate is used and nginx closes connection
with the message: "SSL_GET_PREV_SESSION:session id context uninitialized".
2010-03-02 08:41:47 +00:00
Igor Sysoev
bd4b6e68af fix a geo range if the range includes two or more /16 networks
and does not begin at /16 network boundary
2010-02-25 17:26:01 +00:00
Igor Sysoev
146324618d decrease SSL handshake error level to info 2010-02-19 20:54:58 +00:00
Igor Sysoev
a11234b7c4 SSI %s timefmt has no timezone offset 2010-02-19 13:53:11 +00:00
Igor Sysoev
bc55ea07c8 use content type of the parent request in SSI stub block output
instead of default one
2010-02-19 13:42:59 +00:00
Igor Sysoev
aa9a761f88 style fix: remove tabs 2010-02-18 14:47:09 +00:00
Igor Sysoev
ded2a7c1af fix $upstream_http_ variable prefix length 2010-02-15 19:38:59 +00:00
Igor Sysoev
070f0a865b delete surplus code 2010-02-12 09:48:04 +00:00
Igor Sysoev
b87fba807e const char *fmt in ngx_conf_log_error() 2010-02-12 09:45:05 +00:00
Igor Sysoev
b43c499677 delete ngx_http_perl_cleanup_t unused since r909 2010-02-12 09:40:46 +00:00
Igor Sysoev
68813cae41 fix request counter for $r->sleep(), the bug was introduced in r3050 2010-02-12 09:32:02 +00:00
Igor Sysoev
d1311dfc71 bump version 2010-02-12 09:31:01 +00:00
Igor Sysoev
b681f7184c do not disable keepalive after POST requests for MSIE 7+ 2010-02-01 12:58:07 +00:00
Igor Sysoev
8164f329fe disable keepalive for Safari:
https://bugs.webkit.org/show_bug.cgi?id=5760
2010-02-01 12:01:01 +00:00
Igor Sysoev
4e20f24b5b delete u->cleanup mark, this fixes large values in $upstream_response_time,
the bug had been introduced in r3007
2010-01-29 16:45:14 +00:00
Igor Sysoev
10fa102e32 disable Win32 short file names 2010-01-28 14:17:51 +00:00
Igor Sysoev
77860d74a5 skip URI trailing spaces under Win32 2010-01-28 14:09:28 +00:00
Igor Sysoev
918ef947da Fix segfault when while discarding body a write event handler is called,
runs ngx_http_core_run_phases(), and starts a request processing again.
The write event has clear type and remained in a keepalive connection.
The bug was introduced in r3050.
2010-01-28 08:33:24 +00:00
Igor Sysoev
2f5bcf2d17 bump version 2010-01-28 08:22:45 +00:00
Igor Sysoev
fcaa367929 allow a chunked body for 201 responses 2010-01-11 15:14:23 +00:00
Igor Sysoev
d8be48a546 fix ngx_utf8_cpystrn(): it did not fully copy utf-8 string 2010-01-11 13:39:24 +00:00
Igor Sysoev
e4bc4a2940 named captures worked for two names only 2010-01-11 11:21:46 +00:00
Igor Sysoev
089b2fd31e add context to a resolver log 2010-01-11 11:01:02 +00:00
Igor Sysoev
280e5e7072 use "localhost" in "Host" header line, if unix socket is used in "auth_http" 2009-12-25 15:43:40 +00:00
Igor Sysoev
1651542b3a fix negative time in "Cache-Control" if "expires modified" sets time in the past 2009-12-25 15:00:08 +00:00
Igor Sysoev
9a5eabc4ac bump version 2009-12-25 14:57:10 +00:00
Igor Sysoev
e146ebd813 allow to handle 301/302 in error_page 2009-12-23 15:31:16 +00:00
Igor Sysoev
3662f36a54 fix a cached zero-length body case 2009-12-23 14:46:45 +00:00
Igor Sysoev
bd375b9566 fix typo 2009-12-23 14:22:17 +00:00
Igor Sysoev
d741a7f827 $geoip_city_continent_code, $geoip_latitude, $geoip_longitude 2009-12-22 17:33:03 +00:00
Igor Sysoev
c7c0d610cf fix the "If-None-Match" header name 2009-12-22 16:41:34 +00:00
Igor Sysoev
fb0c73b08d fix building by gcc 4.x with -O2/3/s in some Linux distributions:
dereferencing type-punned pointer will break strict-aliasing rules
2009-12-22 15:29:56 +00:00
Igor Sysoev
8c97fa9ae4 fix building by gcc 4.4 with -O2/3/s:
dereferencing pointer 'sin' does break strict-aliasing rules
2009-12-22 15:15:45 +00:00
Igor Sysoev
9cf418ea92 force image filter conversion if JPEG application data consume more than 5% 2009-12-22 13:03:49 +00:00
Igor Sysoev
ec0655c0ce style fix 2009-12-22 10:45:29 +00:00
Igor Sysoev
a9d26d2e19 fix building by gcc 4.x with -O2/3/s in some Linux distributions:
dereferencing type-punned pointer will break strict-aliasing rules
the bug has been introduced in r3065
2009-12-21 21:56:48 +00:00
Igor Sysoev
733fb74d06 fix caseless locations, the bug had been introduced in r3326 2009-12-17 14:25:46 +00:00
Igor Sysoev
8817113d95 test degradation parameters 2009-12-17 12:45:13 +00:00
Igor Sysoev
04799a6f7c fix r3331:
*) now pools are aligned to 16 bytes
*) forbidden to set non-aligned pool sizes
2009-12-17 12:25:46 +00:00
Igor Sysoev
a75362dcdb fix Win32 error message when an temporary file replaces an existent file:
return at once if ngx_win32_rename_file() was not failed
and do not try to delete already the renamed temporary file
2009-12-17 10:05:39 +00:00
Igor Sysoev
9c8fa5efe5 bump version 2009-12-16 14:59:33 +00:00
Igor Sysoev
44be39475c fix Win32 error messages when an temporary file replaces an existent file:
*) do not rename an already renamed file
*) now ngx_win32_rename_file() returns error code
*) do not log failure inside ngx_win32_rename_file()
2009-12-15 13:47:02 +00:00
Igor Sysoev
29b5a13784 default large_client_header_buffers' buffer size should be 8K as compatible
with Apache's one
2009-12-09 06:37:41 +00:00
Igor Sysoev
58b1f9e9e4 backout r3315 and test r->header_only last, since it's not actually
frequent here: 304 and HEAD responses are not set it before the filter
2009-12-07 15:41:57 +00:00
Igor Sysoev
8f7c8f3c07 fix libatomic usage on arm, cris, hppa, m68k, and sparc platforms 2009-12-07 15:32:38 +00:00
Igor Sysoev
eacd5d89b7 fix double free(), introduced in r3268 2009-12-07 15:13:46 +00:00
Igor Sysoev
6cfcef3cbf remove stale comment 2009-12-02 13:03:54 +00:00
Igor Sysoev
3bc08a51c7 bump version 2009-12-02 13:02:43 +00:00
Igor Sysoev
1cfb972e74 support "*" in gzip_types, ssi_types, etc 2009-11-30 13:15:10 +00:00
Igor Sysoev
a734e33720 chmod unix listen domain socket to 0666 2009-11-30 11:26:24 +00:00
Igor Sysoev
f8b50b9c96 log proxied HTTP/0.9 responses status as "009" 2009-11-29 20:49:29 +00:00
Igor Sysoev
601ab90cd4 fix handling cached HTTP/0.9 response 2009-11-29 20:48:01 +00:00
Igor Sysoev
a1b92a9659 fix server_name regex named captures given by "?P<...>" 2009-11-29 20:39:32 +00:00
Igor Sysoev
d5624689cb update comments 2009-11-25 18:03:59 +00:00
Igor Sysoev
bdfa3baaee fix comment 2009-11-25 17:56:53 +00:00
Igor Sysoev
213cad8e81 libatomic_ops support 2009-11-25 17:55:25 +00:00
Igor Sysoev
89d635fa5d GCC 4.1 builtin atomic operations 2009-11-25 17:34:35 +00:00
Igor Sysoev
f215028477 bump version 2009-11-25 17:04:00 +00:00
Igor Sysoev
72db760eca add NGX_PROCESS_HELPER process status 2009-11-23 15:46:21 +00:00
Igor Sysoev
8019121120 decrease SSL handshake error level to info 2009-11-23 14:09:57 +00:00
Igor Sysoev
6956db0696 fix building without PCRE, the bug had been introduced in r3326 2009-11-23 13:13:58 +00:00
Igor Sysoev
0bd426def1 bump version 2009-11-23 13:09:33 +00:00
Igor Sysoev
2952af08f1 a cache manager thread handle was overwritten by a cache loader thread handle,
this caused an exit delay, the bug had been introduced in r3023
2009-11-17 16:46:27 +00:00
Igor Sysoev
d1d7bb00a3 add comment from r2716 commit message 2009-11-17 10:31:39 +00:00
Igor Sysoev
889fa8debb use global perl variable in perl_destruct()/perl_free()
for non-mulitiplicity perl
2009-11-17 10:28:12 +00:00
Igor Sysoev
69061b73ef fix pcre allocation on Win32, the bug had been introduced in r3326 2009-11-17 10:24:45 +00:00
Igor Sysoev
25622c2f92 bump version 2009-11-17 09:59:45 +00:00
Igor Sysoev
42f5fb19ac evaluate maximum captures size on configuration phase 2009-11-16 19:11:38 +00:00
Igor Sysoev
d86a0bfed4 fix captures in "rewrite", the bug had been introduced in r3326 2009-11-16 19:10:45 +00:00
Igor Sysoev
93da565962 fix building without --with-debug, introduced in r3328 2009-11-16 16:00:52 +00:00
Igor Sysoev
57acd7b421 bump version 2009-11-16 16:00:12 +00:00
Igor Sysoev
50a94dfbd1 backout r3325: postpone filter is a body only filter 2009-11-16 13:22:10 +00:00
Igor Sysoev
a4a0541308 align to minimum of a page and a pool sizes 2009-11-16 12:50:10 +00:00
Igor Sysoev
104ff87c39 ngx_min() 2009-11-16 12:48:41 +00:00
Igor Sysoev
ece77cd5be large allocation should not be aligned to a page size 2009-11-16 12:47:44 +00:00
Igor Sysoev
3e1a05c467 add alignment in debug log 2009-11-16 12:46:05 +00:00
Igor Sysoev
4985109dba ngx_http_degradation_module 2009-11-16 12:20:00 +00:00
Igor Sysoev
c05f20ec2e regex named captures 2009-11-16 12:19:02 +00:00
Igor Sysoev
c0ae4716ec remove subrequest test in range header, chunked, and header filters: they
are run after postpone filter which sends data only in main request context
2009-11-16 12:13:17 +00:00
Igor Sysoev
6c71b88924 allow "proxy_pass http://$backend" without URI part 2009-11-15 11:36:12 +00:00
Igor Sysoev
700a779824 fix posix_fadvise() error handling 2009-11-15 09:16:58 +00:00
Igor Sysoev
b13029c57c update allocation error messages 2009-11-15 09:03:08 +00:00
Igor Sysoev
fc514f1d07 fix posix_memalign() error handling 2009-11-15 08:56:40 +00:00
Igor Sysoev
950fb268a2 ngx_regex_exec() calling optimiztion:
*) change NGX_REGEX_NO_MATCHED to PCRE_ERROR_NOMATCH
*) declare ngx_regex_exec() as #define
*) optimize SSI regex a little
2009-11-13 20:41:41 +00:00
Igor Sysoev
30870b4ab3 style fix: lcf > clcf 2009-11-13 19:59:54 +00:00
Igor Sysoev
35b7a443a1 do not log error if $r->variable was not found 2009-11-12 15:50:34 +00:00
Igor Sysoev
3d12873adb add MSIE padding for Chrome too 2009-11-12 14:24:22 +00:00
Igor Sysoev
bdc154bb73 r->chrome 2009-11-12 14:23:18 +00:00
Igor Sysoev
0338645ecf test frequent r->header_only before three response status 2009-11-12 13:44:16 +00:00
Igor Sysoev
6c49a5afcf refactor gzip_vary handling 2009-11-12 13:41:56 +00:00
Igor Sysoev
2c0b6f3e70 nginx sent gzipped responses to clients those do not support gzip,
if "gzip_static on" and "gzip_vary off"; the bug had been introduced in r3136
2009-11-11 21:12:41 +00:00
Igor Sysoev
f4992bbe14 bump version 2009-11-11 21:06:36 +00:00
Igor Sysoev
20c9f8be85 remove "Content-Encoding: gzip" in 304 response
sent by ngx_http_gzip_static_module
2009-11-11 14:32:49 +00:00
Igor Sysoev
653edd491b use ngx_resolver_alloc() instead of ngx_resolver_calloc()
since all fields are filled
2009-11-11 14:29:20 +00:00
Igor Sysoev
e79f429b4b fix resolving an empty name (".") 2009-11-11 14:27:24 +00:00
Igor Sysoev
61da56d041 fix "set_real_ip_from unix:" inheritance 2009-11-11 13:41:16 +00:00
Igor Sysoev
9eadbde324 fix building without --with-debug, introduced in r3294 2009-11-11 12:32:06 +00:00
Igor Sysoev
a993d55b0f bump version 2009-11-11 12:30:36 +00:00
Igor Sysoev
70bd187c4c disable SSL renegotiation (CVE-2009-3555) 2009-11-11 10:59:07 +00:00
Igor Sysoev
a59ba33060 *) fix resolving an empty name ("."),
*) add quotes in an error message,
*) backout r3299 in ngx_mail_smtp_handler.c
2009-11-09 19:15:11 +00:00
Igor Sysoev
70966c154f fix "PTR ." case in address resolver 2009-11-09 18:04:05 +00:00
Igor Sysoev
64bfa87e73 fix segfault in resolver:
ngx_resolve_name_done() and ngx_resolve_addr_done() did not delete
contexts from a resolver node waiting list.
2009-11-09 17:45:56 +00:00
Igor Sysoev
21accae8e5 cf->conf_file->file.name.data may be uninitialized, if an allocation failed;
found by Clang Static Analyzer
2009-11-05 17:10:48 +00:00
Igor Sysoev
8b620a8a97 delete useless statement 2009-11-05 17:09:02 +00:00
Igor Sysoev
4121aa3440 export aio presence knowledge to prevent using "aio sendfile",
if aio does not present
2009-11-05 13:12:30 +00:00
Igor Sysoev
9b67ca0e41 Fix a bug introduced in r2032: After a child process has read a terminate
message from a channel, the process tries to read the channel again.
The kernel (at least FreeBSD) may preempt the process and sends a SIGIO
signal to a master process. The master process sends a new terminate message,
the kernel switches again to the the child process, and the child process
reads the messages instead of an EAGAIN error. And this may repeat over
and over. Being that the child process can not exit the cycle and test
the termination flag set by the message handler.

The fix disallow the master process to send a new terminate message on
SIGIO signal reception. It may send the message only on SIGALARM signal.
2009-11-04 19:41:08 +00:00
Igor Sysoev
bcc44e2549 allow to inherit unix domain sockets while online upgrade 2009-11-04 18:36:43 +00:00
Igor Sysoev
7319b92591 allow to work single "set_real_ip_from unix:" 2009-11-04 11:37:06 +00:00
Igor Sysoev
822503ea41 bump version 2009-11-04 11:20:54 +00:00
Igor Sysoev
51aa6dec4d fix segfault if there is single large_client_header_buffers
and a request line fills it completely
2009-11-03 18:12:20 +00:00
Igor Sysoev
1bc750da2f use setproctitle("%s", title) 2009-11-03 16:28:21 +00:00
Igor Sysoev
89601c0f10 fix segfault if no rules are defined, introduced in r3279 2009-11-03 16:04:07 +00:00
Igor Sysoev
cc65b0879b fix segfault in SSL if limit_rate is used 2009-11-03 15:38:33 +00:00
Igor Sysoev
956bdfc000 fix segfault if $limit_rate was logged 2009-11-03 15:05:38 +00:00
Igor Sysoev
f4b598b81b fix "if (!-x ...)" 2009-11-03 14:57:27 +00:00
Igor Sysoev
771e677674 fix directive name in error message: "set_realip_from" to "set_real_ip_from" 2009-11-03 14:41:56 +00:00
Igor Sysoev
39c9f6e487 fix directive name in error message: "realip_from" to "set_realip_from" 2009-11-03 13:45:22 +00:00
Igor Sysoev
76c941e70b IPv6 support in ngx_http_access_module 2009-11-03 13:42:45 +00:00
Igor Sysoev
4ac5ca8ae0 ngx_ptocidr() supports IPv6 2009-11-03 13:42:25 +00:00
Igor Sysoev
fd078fd6d5 make ngx_inet6_ntop() non-static 2009-11-03 12:44:55 +00:00
Igor Sysoev
612ecb7674 optimize some cycles:
*) delete surplus variable;
*) on i386/amd64 "while (n) / n--" is smaller than "while (n--)",
   because the platforms have no postfix operations
2009-11-02 17:12:09 +00:00
Igor Sysoev
7e4f193bb0 set_real_ip_from unix: 2009-11-02 16:46:07 +00:00
Igor Sysoev
a9aaa4a78d support IPv6 addresses in Real IP headers 2009-11-02 16:24:27 +00:00
Igor Sysoev
8b816d88a9 change ngx_parse_addr() interface 2009-11-02 16:11:06 +00:00
Igor Sysoev
72e928755b proxy_bind, fastcgi_bind, and memcached_bind 2009-11-02 15:24:02 +00:00
Igor Sysoev
1d52beba73 ngx_parse_addr() 2009-11-02 15:20:42 +00:00
Igor Sysoev
0c189c5159 rename ngx_peer_addr_t to ngx_addr_t 2009-11-02 15:14:17 +00:00
Igor Sysoev
67765e8918 use sin6_addr.s6_addr instead of "(u_char *) & .sin6_addr" 2009-11-02 14:32:46 +00:00
Igor Sysoev
0f25ed3d77 replace inet_addr() with ngx_inet_addr() 2009-11-02 13:51:10 +00:00
Igor Sysoev
47c88464eb use ngx_inet6_addr() 2009-11-02 12:58:30 +00:00
Igor Sysoev
5a76cbbbc6 ngx_inet6_addr() 2009-11-02 12:50:00 +00:00
Igor Sysoev
19811dbdde style fix 2009-11-02 12:41:56 +00:00
Igor Sysoev
61490aa6b6 delete unused field c->local_socklen 2009-11-01 19:29:49 +00:00
Igor Sysoev
9f179fe546 do not unlink unix domain socket file while online upgrade 2009-10-30 19:18:21 +00:00
Igor Sysoev
633c178a17 unlink unix domain socket file after testing 2009-10-30 19:16:50 +00:00
Igor Sysoev
44fa8877c0 fix segfaults if no listen directive was set in default server {} block:
ngx_http_add_listen() uses server's connection_pool_size and
client_header_timeout values, therefore it must be called after
the values have been merged, the bug had been introduced in r3218
2009-10-29 15:53:50 +00:00
Igor Sysoev
e856807660 style fix 2009-10-28 10:47:00 +00:00
Igor Sysoev
cadac4ec3e fix segfault if http {} block is empty, the bug had been introduced in r3218 2009-10-28 10:45:40 +00:00
Igor Sysoev
b3586d13da bump version 2009-10-28 10:31:06 +00:00
Igor Sysoev
8ffea50797 fix r3211 2009-10-26 12:00:37 +00:00
Igor Sysoev
baf8e409ba http listen unix domain sockets 2009-10-26 11:43:32 +00:00
Igor Sysoev
657b3b7f7d fix r3225 and r3227: preserve default_server bit during listen options
overwriting
2009-10-22 10:17:54 +00:00
Igor Sysoev
663e957957 do not run regex for empty host name since regex always fails in this case,
the bug had been introduced in r2196
2009-10-22 09:48:42 +00:00
Igor Sysoev
315cfa0ab3 test a duplicate listen in a server 2009-10-22 08:15:16 +00:00
Igor Sysoev
acb43232f6 fix r3225: it overrode the listen options by default server default options 2009-10-22 08:14:02 +00:00
Igor Sysoev
9826961ed4 listen default_server parameter 2009-10-21 19:18:50 +00:00
Igor Sysoev
5a95080cb6 allow to set listen options in any server 2009-10-21 19:16:38 +00:00
Igor Sysoev
ba3083bfce add listen address in error message 2009-10-21 19:13:27 +00:00
Igor Sysoev
42b72993c5 use lowcase only hostname 2009-10-21 17:04:13 +00:00
Igor Sysoev
cd8b43cde7 rename core_srv_conf fields to more understandable default_server and server 2009-10-21 16:52:10 +00:00
Igor Sysoev
f2694cb925 *) move sockaddr to the listen options
*) rename ngx_http_listen_t to ngx_http_listen_opt_t
2009-10-21 16:47:44 +00:00
Igor Sysoev
2a634f5342 fix r3218:
Initially building lists of ports, addresses, and server names had been
placed at final configuration stage, because complete set of the "listen"s
and the "server_names" were required for this operation. r3218 broke it,
because the "listen"s go usually first in configuration, and
cscf->server_names is empty at this stage, therefore no virtual names
were configured.

Now server configurations are stored in array for each address:port
to configure virtual names. Also regex captures flag is moved from
server names to core server configuration.
2009-10-21 16:27:48 +00:00
Igor Sysoev
d2d0931ed5 refactor http listen code: remove duplicate options fields 2009-10-21 08:48:04 +00:00
Igor Sysoev
79d630ac11 refactor http listen code:
*) add listen's to the global cmcf->ports array instead of server's one
*) rename ngx_http_listen_conf_t to ngx_http_listen_opt_t
2009-10-21 08:19:46 +00:00
Igor Sysoev
e418e0661c fix two previous commits: an early parallel body discarding completion
disables incomplete ngx_http_writer()
2009-10-20 11:48:28 +00:00
Igor Sysoev
9a1f0ac730 allow discarding body while a long response transfer 2009-10-19 16:13:38 +00:00
Igor Sysoev
801a35df3c restore discard body handler after ngx_http_set_writer() set it to
ngx_http_test_reading(), the bug was introduced in r3050
2009-10-19 16:12:13 +00:00
Igor Sysoev
7060e670f4 fix ngx_http_finalize_request() code after a body has been discarded 2009-10-19 16:06:57 +00:00
Igor Sysoev
11e5d7f190 prevent handling discarded body as a pipelined request 2009-10-19 14:08:35 +00:00
Igor Sysoev
2495c4d50b add lingering timeout if a response is short and a request body is being
discarded, the bug was introduced in r3050
2009-10-19 14:08:09 +00:00
Igor Sysoev
a1e36777f4 add SNI support in -V output 2009-10-19 12:35:01 +00:00
Igor Sysoev
145dcc180a fix typo 2009-10-19 12:33:09 +00:00
Igor Sysoev
550454192c ngx_http_parse_time() should support full 32-bit time 2009-10-15 13:19:34 +00:00
Igor Sysoev
5143e39b4e use ngx_uint_t instead of int,
strange to say this reduce function size by 16 bytes
2009-10-15 13:09:58 +00:00
Igor Sysoev
6a588f80c6 bump version 2009-10-15 13:01:42 +00:00
Igor Sysoev
73a9c44441 update r3201: ngx_http_random_index_module should behave consistently
in spite of the dirent.d_type presence
2009-10-14 12:39:41 +00:00
Igor Sysoev
3f438068eb ignore EACCES errors for top level directories in ngx_create_full_path() 2009-10-14 11:46:09 +00:00
Igor Sysoev
d0188e09af do not create Win32 drive letter in ngx_create_full_path() 2009-10-14 11:36:16 +00:00
Igor Sysoev
e58700d3b0 *) reset cached dirent.d_type after stat()
this fixes slash after link to a directory in ngx_http_autoindex_module;
*) use cached dirent.d_type as hint on all systems

the issues has been introduced in r2235
2009-10-14 11:33:35 +00:00
Igor Sysoev
e7138540d6 nginx did not close log file set by --error-log-path,
the bug was introduced in r2744
2009-10-09 14:43:09 +00:00
Igor Sysoev
671236993a test comma separator in "Cache-Control" 2009-10-08 14:22:00 +00:00
Igor Sysoev
e2afcc5d2f hide cacheable Set-Cookie and P3P FastCGI response headers 2009-10-07 15:15:41 +00:00
Igor Sysoev
3bed0daced use only strong ciphers by default 2009-10-07 14:46:13 +00:00
Igor Sysoev
136dd8d1e6 use real file cache length, this fixes cache size counting for responses
without "Content-Length" header and 304 responses.
2009-10-07 12:55:58 +00:00
Igor Sysoev
9e54633645 bump version 2009-10-07 12:48:05 +00:00
Igor Sysoev
4efbd6ab36 fix r3184 2009-10-06 16:08:15 +00:00
Igor Sysoev
cf9dd76b43 disable SSLv2 and low ciphers by default 2009-10-06 14:24:53 +00:00
Igor Sysoev
280d6955e3 bump version 2009-10-06 13:52:26 +00:00
Igor Sysoev
2fb73afece limit_conn_log_level 2009-10-06 10:14:29 +00:00
Igor Sysoev
6624c62742 limit_req_log_level 2009-10-06 10:14:21 +00:00
Igor Sysoev
4ae43f965d fix building by gcc45 2009-10-06 09:46:16 +00:00
Igor Sysoev
5d4b802370 make limit_req to conform to the leaky bucket algorithm 2009-10-06 09:37:18 +00:00
Igor Sysoev
a2951910d3 omit '\0' from "Location" header on MKCOL request 2009-10-06 09:32:21 +00:00
Igor Sysoev
703f15d8a2 clear r->lingering_close to disable preventively calling
ngx_http_set_lingering_close() while request cleanup
2009-10-02 11:32:56 +00:00
Igor Sysoev
2d24d749e4 clear r->keepalive to disable preventively calling
ngx_http_set_keepalive() while request cleanup
2009-10-02 11:30:47 +00:00
Igor Sysoev
48a3131d83 update r3167: do not set r->discard_body if the body has been just discarded 2009-10-02 09:46:04 +00:00
Igor Sysoev
3266171fd4 read_ahead 2009-09-30 13:21:52 +00:00
Igor Sysoev
687b0e99ea Linux/SPARC malloc() returns an address aligned to 8. This conflicts with
our SPARC 16-byte alignment and some allocations may be done out of pool.
ngx_memalign(ngx_pagesize) fixes this issue.
2009-09-30 12:56:44 +00:00
Igor Sysoev
689064b91a log 499 instead 0, the bug was introduced in r3050 2009-09-30 12:05:08 +00:00
Igor Sysoev
13210a18f4 allow several perl_modules 2009-09-30 11:46:01 +00:00
Igor Sysoev
d9ef969e28 use ngx_conf_set_str_array_slot() for perl_require 2009-09-28 16:07:14 +00:00
Igor Sysoev
2c808cc191 optimize error handling 2009-09-28 15:57:28 +00:00
Igor Sysoev
0056d6b4aa bump version 2009-09-28 15:56:28 +00:00
Igor Sysoev
65166cfa2f fix request counter in resolver handling, the bug was introduced in r3050 2009-09-28 12:31:47 +00:00
Igor Sysoev
00e723da20 we do not need to increase request counter in this place,
the bug had appeared in r3115
2009-09-28 11:12:45 +00:00
Igor Sysoev
63bfeb9bd0 fix r3078: do not increase request counter if body has been just discarded 2009-09-26 13:24:15 +00:00
Igor Sysoev
29e7d8cc73 use parents around NGX_ATOMIC_T_LEN value 2009-09-25 20:25:47 +00:00
Igor Sysoev
48a28e2dad uniform ngx_directio_on/off() interface with other file functions 2009-09-25 14:17:28 +00:00
Igor Sysoev
38a7faadfe handle short pwrite() to log an error cause: ENOSPC, EDQUOT, or EFBIG 2009-09-25 13:55:46 +00:00
Igor Sysoev
812234e2f5 fix discarding body 2009-09-25 11:55:33 +00:00
Igor Sysoev
a552ab476e check unsafe Destination 2009-09-25 09:30:06 +00:00
Igor Sysoev
7f6d71bbc8 low ENAMETOOLONG logging level 2009-09-25 09:13:08 +00:00
Igor Sysoev
c81582ea67 fix r3155 2009-09-24 20:09:12 +00:00
Igor Sysoev
5631879c7a test incomplete WriteFile() 2009-09-24 20:05:21 +00:00
Igor Sysoev
f4d97e2472 log file name for read/write errors 2009-09-24 20:04:10 +00:00
Igor Sysoev
4bcc725f83 delete Win95 code 2009-09-24 19:55:35 +00:00
Igor Sysoev
ef2662caab fix debug log message 2009-09-24 14:47:10 +00:00
Igor Sysoev
cdaf442a2f $ssl_session_id 2009-09-24 14:45:28 +00:00
Igor Sysoev
f63a48ce7e update the previous commit: use ngx_strlow() 2009-09-24 13:23:25 +00:00
Igor Sysoev
6749e92938 $host is always in low case:
*) move low case convertation from ngx_http_find_virtual_server()
   to ngx_http_validate_host()
*) add in ngx_http_validate_host() capability to copy host name in the pool
   allocated memory
2009-09-24 13:15:50 +00:00
Igor Sysoev
e5b2d3c6b2 low default connection errors level from alert to error 2009-09-23 15:28:33 +00:00
Igor Sysoev
3749443661 bump version 2009-09-23 15:27:17 +00:00
Igor Sysoev
81fed299ce fail if file size was changed 2009-09-22 09:44:57 +00:00
Igor Sysoev
70df46f5c5 fix typo in addition_types directive name 2009-09-22 09:06:15 +00:00
Igor Sysoev
7386cf58a7 fix request counter for post_action, the bug was introduced in r3050 2009-09-21 18:34:22 +00:00
Igor Sysoev
5b6b1fda1c allow to log invalid $request in access_log always,
before it was logged only if error_log was set to info or debug level
2009-09-21 15:55:56 +00:00
Igor Sysoev
a8d3d2204f fix resolver cache rbtree comparison 2009-09-19 16:15:13 +00:00
Igor Sysoev
15c149e499 restore environ, this fixes segfault on reconfiguration failure when
perl module creates new environment
2009-09-18 09:21:14 +00:00
Igor Sysoev
2d95c3f210 fix comment 2009-09-18 09:12:40 +00:00
Igor Sysoev
c828202087 *) issue warning instead of failure: this is too common case
*) use ngx_log_error(), since OpenSSL does not set an error on the failure
2009-09-18 09:10:16 +00:00
Igor Sysoev
99651523de fix memory leak in resolver 2009-09-16 13:48:11 +00:00
Igor Sysoev
866e958c5d win32 ngx_file_info() utf8 support 2009-09-16 13:30:13 +00:00
Igor Sysoev
7e4e5e165f preserve errno while ngx_free() 2009-09-16 13:28:20 +00:00
Igor Sysoev
d1e9567425 do not pass buf with empty cached response,
this fixes "zero size buf in output" alert
2009-09-15 15:12:03 +00:00
Igor Sysoev
04c2f085f4 nginx always sent "Vary: Accept-Encoding",
if both gzip_static and gzip_vary were on
2009-09-15 11:57:29 +00:00
Igor Sysoev
4428cfc12b image_filter_transparency 2009-09-15 11:55:17 +00:00
Igor Sysoev
f1edf87d04 fix alpha-channel transparency in PNG 2009-09-15 09:47:12 +00:00
Igor Sysoev
6db93ab8ba allow perl "sub{..." 2009-09-15 09:37:16 +00:00
Igor Sysoev
e6823b5199 bump version 2009-09-15 09:36:09 +00:00
Igor Sysoev
be9d165064 test space between "~" and regex in server_name and invalid_referers 2009-09-14 09:48:48 +00:00
Igor Sysoev
97aa4c86a1 handle "/../" case more reliably 2009-09-14 07:42:01 +00:00
Igor Sysoev
12a7d493d4 fix request counter for X-Accel-Redirect, the bug was introduced in r3050 2009-09-13 13:45:32 +00:00
Igor Sysoev
84b20ca18b fix case when the output filter should add incoming buffers
while waiting on file AIO completion
2009-09-13 06:28:17 +00:00
Igor Sysoev
570608ff4a style fix 2009-09-13 06:25:54 +00:00
Igor Sysoev
79b8049de4 fix transparency in GIF 2009-09-12 09:46:28 +00:00
Igor Sysoev
96e36ef252 If .domain.com, .sub.domain.com, and .domain-some.com were defined,
then .sub.domain.com was matched by .domain.com: wildcard names hash
was built incorrectly due to sorting order issue of "." vs "-".
They were sorted as
    com.domain  com.domain-some  com.domain.sub
while they should be sorted as
    com.domain  com.domain.sub   com.domain-some
for correct hash building
2009-09-12 09:28:37 +00:00
Igor Sysoev
e0f1d0afcc style fix 2009-09-11 13:57:50 +00:00
Igor Sysoev
526f36aab8 fix request counter for rewrite or internal redirection cycle,
the bug was introduced in r3050
2009-09-10 16:34:09 +00:00
Igor Sysoev
3e751480b2 increase request counter before an upstream cleanup because the cleanup
decreases the counter via ngx_http_finalize_request(r, NGX_DONE),
the bug was introduced in r3050
2009-09-08 11:37:50 +00:00
Igor Sysoev
4d4b2a1b40 fix request counter handling in perl module for $r->internal_redirect()
and $r->has_request_body(), the bug was introduced in r3050
2009-09-08 11:33:32 +00:00
Igor Sysoev
9963b19f69 do not pass incoming buf chain twice if data are ready,
the bug was introduced in r3072
2009-09-07 12:10:07 +00:00
Igor Sysoev
d0afc39841 bump version 2009-09-07 12:08:58 +00:00
Igor Sysoev
28debb2191 fix the previous commit 2009-09-04 18:51:17 +00:00
Igor Sysoev
78fd825c1e preload just a single byte to avoid testing file overrun 2009-09-04 16:59:23 +00:00
Igor Sysoev
8013a83067 clean cache updating state if a response has uncacheable code or
cache prohibitive headers
2009-09-04 09:57:38 +00:00
Igor Sysoev
7d71c80b16 fix request counter handling for perl handler, introduced in r3050 2009-09-04 09:54:16 +00:00
Igor Sysoev
f0e12845a5 log offset passed to sendfile() 2009-09-04 09:53:09 +00:00
Igor Sysoev
2052077b93 small optimization 2009-09-04 09:50:58 +00:00
Igor Sysoev
63494b4c79 discrease slightly ngx_http_parse_header_line() size:
this line is not required for LF, however, this case is very seldom
2009-09-02 07:02:49 +00:00
Igor Sysoev
21e3e05eb1 discard request body before returning 413 error,
this fixes custom 413 page redirection bug introduced in r1456
2009-09-01 12:47:34 +00:00
Igor Sysoev
b4cc2fc0d7 fix request counter handling while discarding body, introduced in r3050 2009-09-01 12:40:27 +00:00
Igor Sysoev
56f06e69df use %*s instead of %V 2009-09-01 12:35:52 +00:00
Igor Sysoev
2e9ea35fd7 fix segfault when a header starts with "\rX"
and logging is set to info or debug level
2009-09-01 12:32:37 +00:00
Igor Sysoev
f13a2507ae bump version 2009-09-01 12:07:00 +00:00
Igor Sysoev
9f9054df82 retry aio sendfile if data are ready 2009-08-31 14:00:16 +00:00
Igor Sysoev
06bb9d294a fix building on FreeBSD without --with-file-aio 2009-08-31 13:51:13 +00:00
Igor Sysoev
c76ba2b2c5 bump version 2009-08-31 13:50:37 +00:00
Igor Sysoev
fb30a18045 fix request counter handling for try_files, introduced in r3050 2009-08-31 11:21:04 +00:00
Igor Sysoev
bfff03406d aio sendfile 2009-08-30 09:52:39 +00:00
Igor Sysoev
ddda411d14 *) ngx_http_ephemeral
*) use preallocated terminal_posted_request
2009-08-30 09:47:11 +00:00
Igor Sysoev
8c491a77bc refactor EAGAIN/EINTR processing 2009-08-30 09:42:29 +00:00
Igor Sysoev
d11fa717f0 use local variable and fix debug log message 2009-08-29 18:42:31 +00:00
Igor Sysoev
61b09e59d7 fix request counter for memcached, introduced in r3050 2009-08-29 18:40:28 +00:00
Igor Sysoev
cfb6888d87 bump version 2009-08-29 18:39:32 +00:00
Igor Sysoev
6ef7e772a9 fix build by msvc, introduced in r3054 2009-08-28 11:46:12 +00:00
Igor Sysoev
8b8e995eb8 do not create cache key in AIO invocation 2009-08-28 11:23:50 +00:00
Igor Sysoev
a39d4e1aee fix sending a cached file using AIO 2009-08-28 11:22:27 +00:00
Igor Sysoev
aa4200b551 do not disable gzip for MSIE 6.0 SV1 in "gzip_disable msie6" 2009-08-28 08:19:02 +00:00
Igor Sysoev
6fb506a215 directio_alignment 2009-08-28 08:15:55 +00:00
Igor Sysoev
a962506498 FreeBSD and Linux AIO support 2009-08-28 08:12:35 +00:00
Igor Sysoev
1163af9fae style fix 2009-08-28 07:50:45 +00:00
Igor Sysoev
5297d456d8 axe r->connection->destroyed testing 2009-08-26 16:14:57 +00:00
Igor Sysoev
b603dd4b43 request reference counter 2009-08-26 16:04:05 +00:00
Igor Sysoev
450659e62a twice termination delay only after SIGALRM, otherwise many separate SIGCHLD
and SIGIO signals quickly increase delay to the level when SIGKILL is sent
2009-08-26 15:12:28 +00:00
Igor Sysoev
31f6c5c55d style fix 2009-08-26 15:09:09 +00:00
Igor Sysoev
9262c6138e fix typo 2009-08-26 15:03:53 +00:00
Igor Sysoev
764c5eca29 ignore SIGSYS 2009-08-26 05:19:57 +00:00
Igor Sysoev
b71610eb09 *) move small declarations in appropriate places and delete the surplus
header files
*) delete insignificant comments
2009-08-25 09:09:13 +00:00
Igor Sysoev
8e7e69e351 style fix 2009-08-25 09:06:21 +00:00
Igor Sysoev
79fb302daf bump version 2009-08-25 08:47:58 +00:00
Igor Sysoev
a79f8a5655 strict testing "access_log off" 2009-08-23 17:06:33 +00:00
Igor Sysoev
5374610ace process upstream ETag header 2009-08-23 16:10:39 +00:00
Igor Sysoev
f4f7d5e5f4 the flags should be bit-wide only 2009-08-23 12:58:41 +00:00
Igor Sysoev
3a58935936 *) share temporary number between workers
*) randomize collision offset
2009-08-21 09:06:35 +00:00
Igor Sysoev
f95847d0ba test EXDEV after path creation 2009-08-20 15:53:57 +00:00
Igor Sysoev
0ddc1978ee fix copy failure logging and stale files removal, introduced in r3025 2009-08-20 13:41:32 +00:00
Igor Sysoev
9db33c9234 fix copy destination name length, introduced in r3025 2009-08-20 13:37:26 +00:00
Igor Sysoev
0f00b0a801 fix memory leak if GeoIP City database was used 2009-08-19 17:44:33 +00:00
Igor Sysoev
42e49ba1ef bump version 2009-08-19 09:09:12 +00:00
Igor Sysoev
aa4bba5298 fix building on 64-bit platforms, introduced in r3025 2009-08-13 13:48:41 +00:00
Igor Sysoev
c287a9811e fix debug point for left open sockets 2009-08-13 08:40:25 +00:00
Igor Sysoev
45ec56bdca refactor fastcgi stderr handling 2009-08-12 14:38:44 +00:00
Igor Sysoev
b7a09c5523 allow cross device temporary files atomic copying:
*) ngx_copy_file()
*) delete ngx_ext_rename_file_t.log_rename_error and .rename_error fields
2009-08-12 12:05:33 +00:00
Igor Sysoev
c9538c069f NGX_ENOPATH 2009-08-11 14:25:04 +00:00
Igor Sysoev
98ab9ce988 win32 cache loader support 2009-08-11 08:14:43 +00:00
Igor Sysoev
e9d8858da5 style fix 2009-08-11 07:55:39 +00:00
Igor Sysoev
703aab0b72 unlock incompletely loaded cache 2009-08-10 15:57:42 +00:00
Igor Sysoev
632a1922fa delete mistaken sleep in the previous commit 2009-08-10 14:45:52 +00:00
Igor Sysoev
4413fad0db cache loader process 2009-08-10 13:27:14 +00:00
Igor Sysoev
3210b282f5 test cache path levels while reconfiguration 2009-08-10 13:18:40 +00:00
Igor Sysoev
07b280a29f introduce NGX_PROCESS_JUST_SPAWN and change field name accordingly 2009-08-10 13:07:15 +00:00
Igor Sysoev
fe8726404c bump version 2009-08-10 12:49:06 +00:00
Igor Sysoev
22fc3e656e fix segfault introduced in r3007 2009-08-07 13:16:42 +00:00
Igor Sysoev
ccefc4f0aa fix a garbage in a split fastcgi header 2009-08-04 12:19:17 +00:00
Igor Sysoev
1b52828cd9 continue to parse available fastcgi record after a split header,
this fixes the erroneous message "upstream prematurely closed connection
while reading response header from upstream"
2009-08-04 11:51:10 +00:00
Igor Sysoev
5fab282698 bump version 2009-07-31 12:41:02 +00:00
Igor Sysoev
15b7420aa6 ngx_http_upstream_create() to cleanup the previous upstream after
internal redirect
2009-07-27 13:25:29 +00:00
Igor Sysoev
b477b2c2f4 clear "Accept-Ranges" for SSI responses 2009-07-27 13:18:40 +00:00
Igor Sysoev
ce1ba38b93 fix handling "Last-Modified" and "Accept-Ranges" for upstream responses 2009-07-27 13:14:45 +00:00
Igor Sysoev
7335dfa4b6 allow to proxy_pass_header/fastcgi_pass_header "X-Accel-Redirect",
"X-Accel-Limit-Rate", "X-Accel-Buffering", and "X-Accel-Charset"
2009-07-27 12:06:12 +00:00
Igor Sysoev
365d663cc2 fix memory corruption in $ssl_client_cert 2009-07-27 11:51:12 +00:00
Igor Sysoev
b5142550cc fix return value 2009-07-27 11:04:28 +00:00
Igor Sysoev
1099f9f657 fix segfault if 400 or 414 errors are handled intricately 2009-07-24 19:20:29 +00:00
Igor Sysoev
543151b300 fix libxml2 error message 2009-07-24 13:32:41 +00:00
Igor Sysoev
2cc13965a3 variables support in image_filter 2009-07-23 13:14:58 +00:00
Igor Sysoev
f5ca9df2ab delete ancient define 2009-07-23 12:59:11 +00:00
Igor Sysoev
80c3e8e03b delete OpenSSL pre-0.9.7 compatibility: the sources were not actually
compatible with OpenSSL 0.9.6 since ssl_session_cache introduction
2009-07-23 12:54:20 +00:00
Igor Sysoev
9db0245cda ssl_crl 2009-07-23 12:21:26 +00:00
Igor Sysoev
5b4b7c58cc *) $ssl_client_verify
*) "ssl_verify_client ask" was changed to "ssl_verify_client optional"
2009-07-22 17:41:42 +00:00
Igor Sysoev
a4038c8e71 fix r2972, it caused "zero size buf" alert. 2009-07-22 13:06:27 +00:00
Igor Sysoev
15e3b01819 geo module supports trusted proxies 2009-07-22 09:43:14 +00:00
Igor Sysoev
55d47a81a9 do not test "..." case since it's Win9x family feature only 2009-07-20 12:23:04 +00:00
Igor Sysoev
5639272d47 do auto redirect for proxy_pass/fastcgi_pass with variables 2009-07-20 11:44:38 +00:00
Igor Sysoev
193f9f3b14 bump version 2009-07-20 11:43:15 +00:00
Igor Sysoev
bc10147b9f ngx_http_geoip_module 2009-07-20 07:10:43 +00:00
Igor Sysoev
142a9c3f11 preserve XML wellFormed field before freeing memory 2009-07-17 08:04:52 +00:00
Igor Sysoev
c30d6da7db style fix 2009-07-15 14:50:51 +00:00
Igor Sysoev
2642bf1a6d use caseless regex locations on caseless filesystems: MacOSX, Win32, Cygwin 2009-07-14 08:53:37 +00:00
Igor Sysoev
2376d6082a skip URI trailing dots under Win32 2009-07-14 08:51:20 +00:00
Igor Sysoev
c28d632595 ngx_http_set_exten() is always successful since 0.3.46 2009-07-14 08:38:28 +00:00
Igor Sysoev
1d03cd6676 bump version 2009-07-14 08:18:38 +00:00
Igor Sysoev
df4b230ede allow underscore in request method 2009-07-13 09:33:34 +00:00
Igor Sysoev
52833f2211 handle Win32 ReadFile() EOF state in Unix way 2009-07-13 09:32:49 +00:00
Igor Sysoev
d6bb7ea591 style fix 2009-07-09 14:03:12 +00:00
Igor Sysoev
a4eb3f0e02 fix client write event handling in ngx_http_limit_req_module 2009-07-09 14:02:09 +00:00
Igor Sysoev
2e9542b910 fix ngx_http_send_special() for subrequests handled by perl 2009-07-09 13:32:51 +00:00
Igor Sysoev
f8f9fc2f1a bump version 2009-07-09 13:20:51 +00:00
Igor Sysoev
704462ac85 fix building --without-http-cache, broken in r2953 2009-06-22 09:10:50 +00:00
Igor Sysoev
7ae6e18c84 bump version 2009-06-22 08:59:48 +00:00
Igor Sysoev
ad0d2fced4 fix segfault if there is error_page 401, proxy_intercept_errors is on
and backend does not return "WWW-Authenticate" header
2009-06-18 14:28:50 +00:00
Igor Sysoev
bd9eda9986 $upstream_cache_status 2009-06-18 13:34:47 +00:00
Igor Sysoev
a5fe5881c6 ignore ngx_atomic_fetch_add() result
this fixes building at least by gcc 4.2.1 on Mac OS X 10.6
2009-06-18 13:14:51 +00:00
Igor Sysoev
0775182312 fix building --without-http-cache, broken in r2930 2009-06-15 14:25:08 +00:00
Igor Sysoev
dfd4e0a303 bump version 2009-06-15 14:22:20 +00:00
Igor Sysoev
bf22945140 add response file uniq while loading cold cache on demand 2009-06-12 20:32:42 +00:00
Igor Sysoev
282109b563 initialize use_event field in open file cache
the bug had been introduced in r2071
2009-06-12 14:23:29 +00:00
Igor Sysoev
eb5a64fdf2 style fix 2009-06-11 05:51:37 +00:00
Igor Sysoev
ec7903b6f2 bump version 2009-06-10 11:46:34 +00:00
Igor Sysoev
83c93ba109 inherit proxy_set_header, proxy_hide_header, and fastcgi_hide_header
only if cache settings are similar
2009-06-08 12:33:11 +00:00
Igor Sysoev
2d65078eff update r2925 2009-06-07 18:22:58 +00:00
Igor Sysoev
55192e7470 proxy_cache_use_stale/fastcgi_cache_use_stale updating 2009-06-06 18:49:47 +00:00
Igor Sysoev
fa524e9063 delete useless r->cache->uses 2009-06-06 17:48:54 +00:00
Igor Sysoev
ae7e8886f6 remove remnants 2009-06-06 14:13:49 +00:00
Igor Sysoev
366bf71b82 win32 master process had aready closed listening sockets 2009-06-06 12:53:55 +00:00
Igor Sysoev
165aa39230 a signaller process should stop configuration processing just after
it is able to get pid file, this allows to not open log files, etc.
2009-06-06 12:41:31 +00:00
Igor Sysoev
7b6b09f105 *) exit if no workers could not be started
*) do not quit old workers if no new workers could not be started
2009-06-06 12:36:44 +00:00
Igor Sysoev
a864311b12 fix debug logging 2009-06-05 17:44:49 +00:00
Igor Sysoev
7f9305cc2c do not test a pool block space if we can not allocated from the block 4 times 2009-06-05 13:27:12 +00:00
Igor Sysoev
8e5f0acbc2 change surplus for() to while() 2009-06-05 12:33:49 +00:00
Igor Sysoev
abf5d3fbe2 test GIF87a 2009-06-05 07:29:47 +00:00
Igor Sysoev
5a2898f2b4 try to reuse last 4 free large allocation links
this fixes a pool growing for multi-requests keepalive connections
2009-06-03 13:57:28 +00:00
Igor Sysoev
05ff657234 bump version 2009-06-03 04:51:52 +00:00
Igor Sysoev
260c4321d7 return NULL instead of NGX_CONF_ERROR on a create conf failure 2009-06-02 16:09:44 +00:00
Igor Sysoev
05822df0cb fix return value on failure 2009-06-02 16:08:38 +00:00
Igor Sysoev
3e64702807 leave chain in consistent state on errors 2009-06-02 16:07:13 +00:00
Igor Sysoev
42846485a2 test premature process termination 2009-06-02 14:26:59 +00:00
Igor Sysoev
130690fceb log GetExitCodeProcess()'s errno 2009-06-02 14:26:18 +00:00
Igor Sysoev
80027fc0a2 limit_rate_after 2009-06-02 14:01:50 +00:00
Igor Sysoev
f0a827adcb add drive letter for Win32 root path 2009-06-02 14:00:01 +00:00
Igor Sysoev
a119584e66 test that zone has the same addresses in different processes 2009-06-02 13:57:59 +00:00
Igor Sysoev
5b26bec9e8 *) fix memory leak in successful case
*) log shared memory name in failure case
2009-06-02 13:56:42 +00:00
Igor Sysoev
785ee23467 allow shared memory segments more than 4G 2009-05-30 17:06:38 +00:00
Igor Sysoev
8416832621 fix "out of memory" case handling 2009-05-29 11:42:55 +00:00
Igor Sysoev
6da803a6be fix logging in ngx_win32_rename_file() 2009-05-29 09:32:52 +00:00
Igor Sysoev
b7882d1213 add trailing zero to a file name 2009-05-29 09:31:48 +00:00
Igor Sysoev
21c2cf88c1 fix XSLT filter in SSI subrequests 2009-05-28 15:42:27 +00:00
Igor Sysoev
65105aaae3 Win32 returns ERROR_PATH_NOT_FOUND instead of ERROR_FILE_NOT_FOUND 2009-05-28 15:32:22 +00:00
Igor Sysoev
98f692a91e report about proxy/fastcgi_store and proxy/fastcgi_cache incompatibility 2009-05-28 13:41:44 +00:00
Igor Sysoev
da28ef8bff style fix 2009-05-28 13:31:43 +00:00
Igor Sysoev
77adc0d6c2 do not set charset for subrequests 2009-05-26 09:38:48 +00:00
Igor Sysoev
4b14a97b65 fix the previous commit 2009-05-25 19:57:25 +00:00
Igor Sysoev
d1d8cd587b refactor ngx_http_charset_header_filter() 2009-05-25 15:57:43 +00:00
Igor Sysoev
e959128b4a keepalive_requests 2009-05-25 15:38:36 +00:00
Igor Sysoev
6ba4df71b2 bump version 2009-05-25 15:24:20 +00:00
Igor Sysoev
3b74b8eeb9 fix socket leak introduced in r2378 2009-05-25 09:56:01 +00:00
Igor Sysoev
60190068ab reset content_type hash value, this fixes a bug when XSLT responses
could not be processed by SSI, charset, and gzip filters
2009-05-25 09:06:29 +00:00
Igor Sysoev
77fd67cc38 light optimization of ngx_http_test_content_type() 2009-05-25 09:00:35 +00:00
Igor Sysoev
430d42bfdc fix segfault introduced in r2845 2009-05-22 11:32:17 +00:00
Igor Sysoev
93c483e0c5 add charset for ngx_http_gzip_static_module responses 2009-05-22 11:05:26 +00:00
Igor Sysoev
5ed3691b6e proxy_cache_methods and fastcgi_cache_methods 2009-05-19 13:27:27 +00:00
Igor Sysoev
980491302b use already given variable 2009-05-19 12:55:26 +00:00
Igor Sysoev
6091c8c33e bump version 2009-05-18 16:48:53 +00:00
Igor Sysoev
2a9ce62631 use ngx_connection_local_sockaddr() instead of ngx_http_server_addr() 2009-05-18 12:58:19 +00:00
Igor Sysoev
739e29b651 delete unneeded field 2009-05-18 12:21:00 +00:00
Igor Sysoev
610cbd4223 mail proxy listen IPv6 support 2009-05-18 12:20:22 +00:00
Igor Sysoev
c985ee7a61 ngx_connection_local_sockaddr() 2009-05-18 12:12:06 +00:00
Igor Sysoev
868d805c8b delete unneeded cast 2009-05-18 07:47:58 +00:00
Igor Sysoev
1daaa008fb update comments missed in r2513 2009-05-17 20:13:29 +00:00
Igor Sysoev
fdf8e1e183 update variable name missed in r2513 2009-05-17 19:58:37 +00:00
Igor Sysoev
7f20c49059 fix colon in file name for ngx_http_autoindex_module 2009-05-17 19:01:23 +00:00
Igor Sysoev
640e3a49d5 image_filter_jpeg_quality 2009-05-16 16:57:11 +00:00
Igor Sysoev
731e6a9b11 style fix 2009-05-14 16:24:39 +00:00
Igor Sysoev
bfbded71fc client_body_in_single_buffer 2009-05-14 11:41:33 +00:00
Igor Sysoev
ff07f319c9 $request_body variable 2009-05-14 11:40:51 +00:00
Igor Sysoev
e6460ea7bb update two previous commits again 2009-05-14 11:39:06 +00:00
Igor Sysoev
bc94bdaf8f update the previous commit 2009-05-14 11:36:26 +00:00
Igor Sysoev
7d9e3345cd fix client_body_in_file_only type 2009-05-14 11:31:50 +00:00
Igor Sysoev
bba78036c8 bump version 2009-05-12 13:11:39 +00:00
Igor Sysoev
fd61ab4550 test finalized image filter context before testing image_filter off
this fixes SIGFPE if image filter errors are passed to named location
2009-05-12 12:05:29 +00:00
Igor Sysoev
ec9f47175e bump version 2009-05-11 17:47:06 +00:00
Igor Sysoev
dbebf0bdbc fix building --without-http-cache
the bug had been appeared in r2806
2009-05-08 20:14:35 +00:00
Igor Sysoev
b1897d2395 reconfigure master process 2009-05-08 18:12:03 +00:00
Igor Sysoev
3adecaf121 fix the previous commit 2009-05-08 18:11:18 +00:00
Igor Sysoev
ad0b9303d0 allow to pass image filter errors via the same location where the filter is set 2009-05-08 14:52:50 +00:00
Igor Sysoev
8bb39121fc test already destroyed request 2009-05-08 14:31:59 +00:00
Igor Sysoev
fd4191845b handle big responses for "size" and "test" image_filters 2009-05-08 14:25:51 +00:00
Igor Sysoev
4318688cce preserve Solaris binary hardware capabilities 2009-05-08 09:41:43 +00:00
Igor Sysoev
dbc205ab5a IPv6 for Win32 2009-05-07 13:05:04 +00:00
Igor Sysoev
6ce6fcd12d divide select module into two modules: Unix and Win32 ones 2009-05-06 14:53:54 +00:00
Igor Sysoev
3182d6a9d0 bump version 2009-05-06 14:11:03 +00:00
Igor Sysoev
44063a76f4 make code clearer 2009-05-06 08:54:54 +00:00
Igor Sysoev
57ca2c8013 test event type to prevent errors 2009-05-06 08:53:13 +00:00
Igor Sysoev
c340a2841b delete level event of appropriate type, this should fix select()'s EBADF,
WSAENOTSOCK, and "select ready != events" alerts
2009-05-06 08:40:44 +00:00
Igor Sysoev
ee4be0345f ngx_create_listening() 2009-05-05 17:33:26 +00:00
Igor Sysoev
25870d8ea2 reinit proxy/fastcgi header parser before ngx_http_upstream_cache_send() 2009-05-05 17:18:33 +00:00
Igor Sysoev
b4097d6093 proxy/fastcgi_cache_use_stale http_50x did not work 2009-05-05 15:17:00 +00:00
Igor Sysoev
d4a71fb844 move listen log copying from ngx_open_listening_sockets()
to ngx_configure_listening_sockets(), otherwise listen socket logs have no file
after first reload and this caused segfault if debug_connection was used;
the bug has been introduced in r2786
2009-05-05 13:16:29 +00:00
Igor Sysoev
00bd137064 use correct name 2009-05-05 13:12:59 +00:00
Igor Sysoev
682414f352 use local variable 2009-05-05 13:05:42 +00:00
Igor Sysoev
a8da6c2ae6 delete never used ngx_ssl_set_nosendshut() 2009-05-04 19:51:32 +00:00
Igor Sysoev
6efa56fe7f delete ngx_listening_inet_stream_socket() 2009-05-04 19:51:09 +00:00
Igor Sysoev
4c9d36765c axe imap module artifacts 2009-05-04 19:34:59 +00:00
Igor Sysoev
63d0bea178 do not free buffer with cache header before it would be written,
it seems this affected header only FastCGI responses only:
proxied header only responses were cached right
2009-05-04 19:04:00 +00:00
Igor Sysoev
e7b2f1809f fix building ngx_http_image_filter_module on 64-bit platforms 2009-05-04 11:39:22 +00:00
Igor Sysoev
fcf9bd9bd8 use off_t in $r->sendfile(), this allows to use 64-bit off_t on platforms
where IV is long:
*) on 64-bit platforms,
*) and on 32-bit platforms if perl was built with -Duse64bitint
2009-05-01 19:31:52 +00:00
Igor Sysoev
e7d99eff2c bump version 2009-05-01 19:13:37 +00:00
Igor Sysoev
e2ada61896 ngx_http_image_filter_module 2009-05-01 18:42:09 +00:00
Igor Sysoev
71d1f49268 ngx_http_filter_finalize_request() and ngx_http_clean_header() 2009-05-01 18:41:07 +00:00
Igor Sysoev
b01c9cc10e proxy_ignore_headers and fastcgi_ignore_headers 2009-04-30 16:15:07 +00:00
Igor Sysoev
0cd76ea290 *) refactor error_log processing: listen socket log might inherit built-in
error_log with zero level, and r2447, r2466, r2467 were not enough
*) remove bogus "stderr" level
*) some functions and fields renames
2009-04-30 13:53:42 +00:00
Igor Sysoev
06d4aa1883 *) check a proxy_redirect single parameter
*) warn about "proxy_redirect false"
2009-04-30 12:43:38 +00:00
Igor Sysoev
5461f39381 set of.failed for cached error, the bug has been introduced in r2757 2009-04-30 08:01:50 +00:00
Igor Sysoev
ef919756d9 uniform ngx_file_info() interface with ngx_fd_info() 2009-04-29 19:28:52 +00:00
Igor Sysoev
b1e640a385 try to repair the case "select ready != events" 2009-04-29 18:56:47 +00:00
Igor Sysoev
a1580f58dd ngx_select_repair_fd_sets() 2009-04-29 15:29:12 +00:00
Igor Sysoev
b70b1f7c64 delete useless debug log 2009-04-29 15:15:17 +00:00
Igor Sysoev
7c6ba72e24 style fix 2009-04-29 15:12:57 +00:00
Igor Sysoev
c5237a8829 handle Winsock select() WSAEINVAL 2009-04-29 13:42:14 +00:00
Igor Sysoev
ff95d9290c style fix 2009-04-29 13:08:10 +00:00
Igor Sysoev
a70d086812 fix the previous commit 2009-04-29 13:07:16 +00:00
Igor Sysoev
dcc9205a39 Winsock uses ECONNABORTED instead of ECONNRESET 2009-04-29 11:34:58 +00:00
Igor Sysoev
341b8f67b9 fix building by BCC if NGX_PREFIX is defined 2009-04-29 11:32:58 +00:00
Igor Sysoev
ca6a9e0fdc *) do not show line number for -g option
*) reset configuration file after -g option has been parsed
2009-04-28 20:06:03 +00:00
Igor Sysoev
9441ffadbe add listen events for win32 only after accept mutex is hold 2009-04-28 20:03:59 +00:00
Igor Sysoev
bb8971fd26 fallback to neutral language in FormatMessage() 2009-04-28 15:06:29 +00:00
Igor Sysoev
9d4a8d9111 introduce ngx_write_console() to support OEM code pages 2009-04-28 15:05:27 +00:00
Igor Sysoev
bffd3196cf "port_in_redirect off" did not work
the bug had been appeared in r2530 and r2534
2009-04-28 06:20:12 +00:00
Igor Sysoev
2cc2893bc1 add prefix in Usage 2009-04-28 04:34:27 +00:00
Igor Sysoev
28b313290b it seems MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT) returns
ERROR_RESOURCE_LANG_NOT_FOUND for Russian locale
2009-04-27 18:58:35 +00:00
Igor Sysoev
f67e0a4050 ngx_log_errno() 2009-04-27 13:17:33 +00:00
Igor Sysoev
e1c9746e37 use ngx_vslprintf(), ngx_slprintf() 2009-04-27 13:06:20 +00:00
Igor Sysoev
4e1fe03e03 ngx_vslprintf(), ngx_slprintf() 2009-04-27 12:51:33 +00:00
Igor Sysoev
8ec9a72295 bump version 2009-04-27 12:48:38 +00:00
Igor Sysoev
2ac565faf0 fix building by MSVC8 2009-04-27 11:33:34 +00:00
Igor Sysoev
5ef370df40 -p and --prefix= 2009-04-27 11:32:33 +00:00
Igor Sysoev
df585ef949 get a full response if the response is cacheable or storable even
a client has closed connection prematurely
2009-04-27 11:20:55 +00:00
Igor Sysoev
f1cc457d7f *) of.test_only to not open file if only stat() is enough
*) of.failed to return exact name of failed syscall
2009-04-27 09:55:53 +00:00
Igor Sysoev
0e60e4f73a add quotes for configure options with spaces 2009-04-26 19:37:38 +00:00
Igor Sysoev
43e1b88acb style fix 2009-04-24 19:58:19 +00:00
Igor Sysoev
22380569de merge SSL context inside "if" block 2009-04-24 19:56:09 +00:00
Igor Sysoev
c27497da92 change ngx_log_abort() interface 2009-04-24 15:50:51 +00:00
Igor Sysoev
a3041ac931 style fix: (void) 2009-04-24 14:45:52 +00:00
Igor Sysoev
c134eb058d change ngx_log_create_errlog() interface 2009-04-24 14:27:36 +00:00
Igor Sysoev
7b9feda70b fix Auth-Method, the bug has been introduced in r2496 2009-04-24 09:54:40 +00:00
Igor Sysoev
caf17102e8 pass command lines options to workers 2009-04-23 18:22:28 +00:00
Igor Sysoev
bf14b000e6 ngx_path_separator() 2009-04-23 16:38:59 +00:00
Igor Sysoev
c28ff717cb issue start up errors and warning on both stderr and error_log 2009-04-23 11:13:12 +00:00
Igor Sysoev
ae2f2b105a style fix: remove trailing spaces introduced in the previous commit 2009-04-23 09:46:14 +00:00
Igor Sysoev
eeed2e9b21 use ngx_str_t for error levels 2009-04-23 08:05:54 +00:00
Igor Sysoev
fce0ab53ad axe incomplete support of Winsock error descriptions on NT 2009-04-22 11:25:12 +00:00
Igor Sysoev
b5b7e89469 use English only error descriptions in Win32 ngx_strerror_r() 2009-04-22 11:20:31 +00:00
Igor Sysoev
c8e9f26a57 implement "-s signal" option for Unix 2009-04-21 20:25:49 +00:00
Igor Sysoev
80ce3d4dd1 style fix: remove trailing spaces 2009-04-21 19:49:48 +00:00
Igor Sysoev
dc5ad52761 style fix: remove tabs 2009-04-21 19:38:02 +00:00
Igor Sysoev
59c393f393 add -? and -h options 2009-04-21 16:21:58 +00:00
Igor Sysoev
e980a6814b add 48x48 icon 2009-04-21 15:44:39 +00:00
Igor Sysoev
b77808cee0 allow condensed command lines options 2009-04-21 15:42:15 +00:00
Igor Sysoev
19a0e6e32e fix r2731 for Win32 2009-04-21 15:40:40 +00:00
Igor Sysoev
f873e73b96 test command line options before ngx_log_init() and issue errors to stderr 2009-04-21 13:39:47 +00:00
Igor Sysoev
9a354261f7 fix fastcgi_cache_min_uses 2009-04-21 10:36:01 +00:00
Igor Sysoev
2f7f95381d bump version 2009-04-20 13:29:38 +00:00
Igor Sysoev
bd91999ea5 Win32 master/workers model 2009-04-20 06:08:47 +00:00
Igor Sysoev
b533e98252 fix Win32 ngx_gettimezone() 2009-04-19 19:08:49 +00:00
Igor Sysoev
694bdea2a9 add variadic macros support for msvc8 2009-04-19 16:25:02 +00:00
Igor Sysoev
1153aa6465 show -t results on stderr 2009-04-19 16:06:09 +00:00
Igor Sysoev
d7fe640672 remove TODO comments 2009-04-18 19:39:06 +00:00
Igor Sysoev
f7a08d5f9a support attaching to an existent Win32 shared memory 2009-04-18 19:27:28 +00:00
Igor Sysoev
6ac68bcc4c update c->sent in ngx_unix_send() 2009-04-18 19:13:53 +00:00
Igor Sysoev
61b7791486 fix building on platforms which have no atomic operations support,
the bug was introduced in r2564
2009-04-17 19:11:31 +00:00
Igor Sysoev
b072c3d647 fix the previous commit 2009-04-17 19:09:08 +00:00
Igor Sysoev
c7f876bd4c move zone name from ngx_shm_zone_t to ngx_shm_t to use Win32 shared memory 2009-04-16 19:25:09 +00:00
Igor Sysoev
c26e7b9d49 perl termination fixes:
*) master exit hook is run before global pool cleanup, so call PERL_SYS_TERM()
   after perl_destruct()/perl_free().  This fixes the message
        panic: MUTEX_LOCK (22) [op.c:352]
   on some threaded perl builds

*) call perl_destruct()/perl_free() before PERL_SYS_TERM() for
   non-mulitiplicity perl
2009-04-16 14:42:31 +00:00
Igor Sysoev
e4ecddfdb0 fix segfault on exit if no http section is defined in confguraiton,
the bug has been introduced in r1947
2009-04-15 20:28:36 +00:00
Igor Sysoev
ca878c8ccc fix segfault if no http section is defined in confguraiton,
the bug has been introduced in r1259
2009-04-15 20:26:33 +00:00
Igor Sysoev
5234b9c6a8 fix building by BCC without NGX_DEBUG_MALLOC 2009-04-15 19:44:41 +00:00
Igor Sysoev
ee0da9ad53 fix building by MSVC8 2009-04-15 19:28:10 +00:00
Igor Sysoev
0f50f09022 fix debug logging 2009-04-15 13:46:52 +00:00
Igor Sysoev
9bd1010164 fix building --without-http-cache, introduced in r2664 and later 2009-04-15 12:25:51 +00:00
Igor Sysoev
2b89d20302 hide cacheable Set-Cookie and P3P response headers 2009-04-15 11:42:49 +00:00
Igor Sysoev
081662a3e1 do not pass if-... headers for cacheable responses 2009-04-15 11:21:12 +00:00
Igor Sysoev
c796dd263a shutdown client connection for cacheable header only responses 2009-04-15 11:19:27 +00:00
Igor Sysoev
e41e724726 support 304 for cacheable responses 2009-04-15 11:17:38 +00:00
Igor Sysoev
50e1cc4560 style fix 2009-04-15 10:57:40 +00:00
Igor Sysoev
ea8536b821 support HEAD in proxy cache 2009-04-15 09:53:22 +00:00
Igor Sysoev
1f450f5b1f style fix: remove trailing spaces 2009-04-15 06:26:20 +00:00
Igor Sysoev
57006fbb13 bump version 2009-04-15 06:25:02 +00:00
Igor Sysoev
395f895900 allow any status 2009-04-11 11:05:15 +00:00
Igor Sysoev
ecd822809d try_files status code 2009-04-11 11:02:36 +00:00
Igor Sysoev
9ce893b13b set cache manager maximum sleep time to 10s 2009-04-10 17:46:25 +00:00
Igor Sysoev
fb5f504bcd style fix 2009-04-10 17:45:07 +00:00
Igor Sysoev
a655f363e2 style fix 2009-04-10 14:49:51 +00:00
Igor Sysoev
909b36ab1f do not call ngx_http_file_cache_free() if a response is not cacheable 2009-04-10 14:48:41 +00:00
Igor Sysoev
49ed98d1eb add debug logging 2009-04-10 14:47:18 +00:00
Igor Sysoev
e46943965d backout r2535: virtual names is a property of address:port pair,
but is not a property of server configuration
2009-04-09 13:56:16 +00:00
Igor Sysoev
b37316d7dd style fix 2009-04-08 19:51:30 +00:00
Igor Sysoev
a2de7b9b93 delete win32 ngx_file_append_mode() as we use reliable
FILE_APPEND_DATA|SYNCHRONIZE flags
2009-04-08 19:13:28 +00:00
Igor Sysoev
2ec2e35efe adopt NGX_FILE_TRUNCATE for win32 2009-04-08 19:03:41 +00:00
Igor Sysoev
64851bb2ae fix r2590: error_page made an external redirect without query string 2009-04-07 15:50:08 +00:00
Igor Sysoev
4f1192651d bump version 2009-04-06 13:42:56 +00:00
Igor Sysoev
d5ba36fdad backout r2677 and fix ngx_strlcasestrn() again 2009-04-06 11:42:42 +00:00
Igor Sysoev
8d9e4c847d bump version 2009-04-06 11:39:01 +00:00
Igor Sysoev
f3aed53c9d fix ngx_strlcasestrn() 2009-04-06 10:38:40 +00:00
Igor Sysoev
e94b22b143 bump version 2009-04-06 10:37:53 +00:00
Igor Sysoev
44a69c83a4 proxy_cache_key 2009-04-06 08:58:44 +00:00
Igor Sysoev
43f3f4a73d fix cache path slot 2009-04-06 08:35:34 +00:00
Igor Sysoev
1dcaa97ccc refactor ngx_http_arg() using ngx_strcasestrn(),
back out zero termination introduced in r2138
2009-04-04 17:51:38 +00:00
Igor Sysoev
21a3c66a87 support Cache-Control no-cache and max-age in cache 2009-04-04 17:35:40 +00:00
Igor Sysoev
a514d68bfb ngx_strlcasestrn() 2009-04-04 17:31:54 +00:00
Igor Sysoev
054c505050 update r2664 2009-04-04 17:22:26 +00:00
Igor Sysoev
c8298bf3ee support Expires in cache 2009-04-03 15:48:19 +00:00
Igor Sysoev
db8f150044 fix r2664: ..._cache_valid did not work for stale responses 2009-04-03 15:47:45 +00:00
Igor Sysoev
c1713aadf5 zero field 2009-04-03 15:44:41 +00:00
Igor Sysoev
0eea247b1d support X-Accel-Expires in cache 2009-04-03 14:33:34 +00:00
Igor Sysoev
56f86505db cache GET requests only 2009-04-03 12:06:04 +00:00
Igor Sysoev
ca2bf870d8 merge fastcgi_cache_key 2009-04-02 13:48:54 +00:00
Igor Sysoev
c919d3178a autoconfigure crypt_r(): uclibc has no crypt_r() 2009-04-02 13:46:39 +00:00
Igor Sysoev
76f42ca21a fix OpenBSD building, broken in r2616 2009-04-02 13:44:32 +00:00
Igor Sysoev
508b1b5dfb bump version 2009-04-02 13:44:02 +00:00
Igor Sysoev
de9fca55b1 fix MacOSX building, broken in r2616 2009-04-01 13:09:36 +00:00
Igor Sysoev
931d313311 zero cache file length,
this fixes full cache purging and hogging CPU by the cache manager after this
2009-04-01 13:05:38 +00:00
Igor Sysoev
a697c8e574 add debug logging 2009-04-01 13:01:50 +00:00
Igor Sysoev
24c2787163 Win32 appends synchronized if only FILE_APPEND_DATA and SYNCHRONIZE are set
without any other flags. On the other hand, Unix requires at least the write
flag to be set together with O_APPEND.
2009-03-31 13:52:01 +00:00
Igor Sysoev
fadc7a7e81 win32 ngx_open_file() supports utf8 names and NGX_FILE_APPEND 2009-03-30 14:51:51 +00:00
Igor Sysoev
8017a63cb3 ngx_process_tray() 2009-03-30 14:46:33 +00:00
Igor Sysoev
91db11b32c fix segfault introduced in r2602 if there is 502/504 error
and proxy/fastcgi_cache is defined without proxy/fastcgi_cache_valid
2009-03-30 14:23:07 +00:00
Igor Sysoev
f072a02ec5 fix r2579 2009-03-30 14:15:47 +00:00
Igor Sysoev
723f71ddfe fix FreeBSD before 7 building, broken in r2616 2009-03-30 12:33:33 +00:00
Igor Sysoev
0370ff015e bump version 2009-03-30 12:09:52 +00:00
Igor Sysoev
4aedcc5f4d bump version 2009-03-30 11:00:58 +00:00
Igor Sysoev
5fe3fb56e8 nginx_version 2009-03-30 07:48:53 +00:00
Igor Sysoev
19298ec1d3 introduce cache manager instead of cache cleaner 2009-03-30 07:45:55 +00:00
Igor Sysoev
1be7419d10 ngx_fs_bsize() 2009-03-30 07:43:06 +00:00
Igor Sysoev
a1e9bfbc85 fix ngx_wsasend_chain() 2009-03-29 16:58:23 +00:00
Igor Sysoev
7c6c186a7e update cpuid for Core 2 and Atom 2009-03-28 12:43:41 +00:00
Igor Sysoev
2766157b02 delete duplicate error logging 2009-03-27 19:32:55 +00:00
Igor Sysoev
a2c8d9a0a8 improve ngx_slab_alloc() error logging 2009-03-27 17:00:42 +00:00
Igor Sysoev
04fe40023a delete old debugging and info 2009-03-27 16:37:39 +00:00
Igor Sysoev
766f3a9753 rename ngx_http_scrip_flush_complex_value()
to ngx_http_script_flush_complex_value()
2009-03-27 14:59:47 +00:00
Igor Sysoev
22d381e87c fix plain text values using relative path in ngx_http_complex_value(),
this fixes the auth_basic_user_file bug introduced in r2589
2009-03-27 06:34:31 +00:00
Igor Sysoev
1e5ef6b0f4 fix alias with variables, but without captures,
the bug had been introduced in r2566 and r2573
2009-03-26 15:24:19 +00:00
Igor Sysoev
517a8fc588 delete unneeded condition 2009-03-26 14:00:28 +00:00
Igor Sysoev
7b7faed7d6 fix add_header Last-Modified "", broken in r2589 2009-03-26 13:34:37 +00:00
Igor Sysoev
2f1a2f3d19 fix logged long locked cache entry name and add count 2009-03-26 09:50:04 +00:00
Igor Sysoev
3afc10f507 fix segfault if ngx_read_file() will fail 2009-03-24 15:03:38 +00:00
Igor Sysoev
63f52af737 fastcgi cache 2009-03-24 12:49:29 +00:00
Igor Sysoev
3a20e4a477 unlink proxy_cache and proxy_cache_valid 2009-03-24 12:31:24 +00:00
Igor Sysoev
7e4d11bb44 do not clean cache if memory cache keys zone is cold 2009-03-24 12:25:43 +00:00
Igor Sysoev
0ded9db383 fix the previous commit 2009-03-23 16:40:11 +00:00
Igor Sysoev
64416aa321 axe old definition fields 2009-03-23 15:57:57 +00:00
Igor Sysoev
565e1e436a bump version 2009-03-23 15:56:46 +00:00
Igor Sysoev
52859f2f13 a prelimiary proxy cache support 2009-03-23 13:14:51 +00:00
Igor Sysoev
1af7090b50 style fix: remove tabs 2009-03-22 15:52:52 +00:00
Igor Sysoev
9bc41a4281 style fix: remove tabs 2009-03-22 15:50:07 +00:00
Igor Sysoev
17f0e66bd9 use complex value in error_page 2009-03-22 09:40:04 +00:00
Igor Sysoev
0c2fd4a5de use complex values in add_header, auth_basic_user_file,
sub_filter, and xslt_stylesheet parameters
2009-03-22 09:39:19 +00:00
Igor Sysoev
8508c10bb8 ngx_http_script_flush_complex_value()
ngx_http_complex_value()
ngx_http_compile_complex_value()
2009-03-22 09:36:51 +00:00
Igor Sysoev
c7ce3a99bc add full path debug log in try_files 2009-03-20 16:50:53 +00:00
Igor Sysoev
e018a9c6ef allow try_files in server context 2009-03-20 16:48:45 +00:00
Igor Sysoev
cd70a5225a fix directory test in try_files 2009-03-20 16:47:23 +00:00
Igor Sysoev
7b5edd8ffe always run regex in server_name to get captures 2009-03-19 16:07:40 +00:00
Igor Sysoev
fb3be73a38 test wildcard tail hash existance 2009-03-19 15:46:27 +00:00
Igor Sysoev
b03aa7fcc2 split args in a try_files fallback 2009-03-19 13:42:27 +00:00
Igor Sysoev
2c7cb55ac1 ngx_http_split_args() 2009-03-19 13:41:29 +00:00
Igor Sysoev
165b3c001c split ngx_http_script_compile() 2009-03-18 14:42:06 +00:00
Igor Sysoev
61818c47af bump version 2009-03-18 14:40:21 +00:00
Igor Sysoev
3658a5bdc6 fix $server_addr for wildcard listen, the has been introduced in r2513 2009-03-18 12:23:57 +00:00
Igor Sysoev
f76a6c2244 reserve space for r->uri, the bug has been introduced in r2566 2009-03-18 12:21:19 +00:00
Igor Sysoev
f2a8affd7e delete unneeded variable 2009-03-16 11:08:08 +00:00
Igor Sysoev
8f13bccab4 bump version 2009-03-16 11:07:29 +00:00
Igor Sysoev
85e989e209 auth_basic_user_file supports variables 2009-03-16 07:13:22 +00:00
Igor Sysoev
c7e87af678 fix case when regex locaiton runs the second time via internal redirect 2009-03-14 19:24:17 +00:00
Igor Sysoev
bb7d615b3c fix reserved mapped uri length if alias has captures 2009-03-14 19:20:34 +00:00
Igor Sysoev
51ed97f79f remove unneeded increment 2009-03-14 17:10:25 +00:00
Igor Sysoev
da0a5318f1 compatibility with Tru64 UNIX: fcntl(F_SETLK, F_WRLCK) returns EINVAL if busy 2009-03-13 14:53:30 +00:00
Igor Sysoev
6d94b51f0b ipv6only 2009-03-13 14:20:34 +00:00
Igor Sysoev
648b0dcf28 fix building without PCRE, introduced in r2553 2009-03-12 11:42:34 +00:00
Igor Sysoev
0bd7b00eb7 ignore EINVAL from setsockopt() on Solaris 2009-03-12 07:16:15 +00:00
Igor Sysoev
d9307664db bump version 2009-03-12 07:12:25 +00:00
Igor Sysoev
000609ae76 fix segfaults introduced in r2549 and r2550 2009-03-11 13:04:02 +00:00
Igor Sysoev
da404fcfe5 bump version 2009-03-11 12:57:26 +00:00
Igor Sysoev
dc34dee2f2 fix segfaults introduced in r2550 2009-03-09 08:50:34 +00:00
Igor Sysoev
b91fa66fc8 style fix: remove tabs 2009-03-06 16:48:36 +00:00
Igor Sysoev
78c95de9da XFS on Linux does not set dirent.d_type,
therefore fallback to stat() if dirent.d_type is not set,
this fixes slash after directory name in ngx_http_autoindex_module;
the issue has been introduced in r2235
2009-03-06 13:01:21 +00:00
Igor Sysoev
7ac9f3605c captures support in server_name 2009-03-06 12:50:20 +00:00
Igor Sysoev
925baa0f95 captures support in location and alias 2009-03-06 12:49:22 +00:00
Igor Sysoev
1d05de49a3 now regex captures are per-request entities 2009-03-06 12:15:07 +00:00
Igor Sysoev
4b97b33336 pclcf->regex_locations are used with PCRE only 2009-03-05 08:24:17 +00:00
Igor Sysoev
72cdf92a91 bump version 2009-03-05 08:22:45 +00:00
Igor Sysoev
05ee60aed9 fix postponed zlib memory allocation, introduced in r2411
*) introduce postpone_gzipping directive
*) disable postponed gzipping by default

The r2411 commit caused hangings up on large SSIed responses
as SSI cleared buf->recycled bit on copy of recycled buf parts
2009-03-01 19:24:11 +00:00
Igor Sysoev
42c67dd5fb fix case when the first try is shorter then URI 2009-03-01 19:10:36 +00:00
Igor Sysoev
288e503e92 lower ECONNRESET level 2009-02-25 14:27:34 +00:00
Igor Sysoev
3e7e9d72e5 fix segfault introduced in r2486 in $sent_http_location processing 2009-02-24 22:02:08 +00:00
Igor Sysoev
d7b3b48f0e fix the previous commit 2009-02-24 14:25:24 +00:00
Igor Sysoev
36860101ec prepare ngx_ptocidr() for IPv6 2009-02-24 14:01:40 +00:00
Igor Sysoev
1f4220ee86 small optimization: " == NGX_ERROR" > " != NGX_OK" 2009-02-24 10:42:23 +00:00
Igor Sysoev
9b4a1d0094 use variable for often used field 2009-02-24 08:32:02 +00:00
Igor Sysoev
fed1ca0dc7 move r->virtual_names to ngx_http_core_srv_conf_t 2009-02-24 07:56:47 +00:00
Igor Sysoev
1966aedd6d axe r->port_text 2009-02-24 07:29:55 +00:00
Igor Sysoev
50273503aa remove seldom used variable 2009-02-24 07:21:35 +00:00
Igor Sysoev
2739121518 fix r2530 2009-02-24 07:12:39 +00:00
Igor Sysoev
4da223c8b5 axe unneeded port field 2009-02-23 21:30:31 +00:00
Igor Sysoev
80a4f29c8a axe r->port 2009-02-23 21:19:35 +00:00
Igor Sysoev
2d95c82f91 axe r->in_addr 2009-02-23 21:05:10 +00:00
Igor Sysoev
b5a17c727c bump version 2009-02-23 21:02:18 +00:00
Igor Sysoev
5336bd878b name/password were ignored after odd empty lines 2009-02-23 15:31:18 +00:00
Igor Sysoev
20018efe0f add auth basic failure logging 2009-02-23 15:15:42 +00:00
Igor Sysoev
49e140ed6c fix message 2009-02-23 09:42:35 +00:00
Igor Sysoev
8e1aa8ee9c fix NGX_SOCKADDRLEN, introduced in r2513 2009-02-21 15:13:13 +00:00