Ruslan Ermilov
a94a101c79
Core: don't reuse shared memory zone that changed ownership (ticket #210 ).
...
nginx doesn't allow the same shared memory zone to be used for different
purposes, but failed to check this on reconfiguration. If a shared memory
zone was used for another purpose in the new configuration, nginx attempted
to reuse it and crashed.
2012-11-23 12:43:58 +00:00
Ruslan Ermilov
9f385870f6
Fixed location of debug message in ngx_shmtx_lock().
2012-11-21 14:23:26 +00:00
Igor Sysoev
da130acfbe
Fixed failure to start cache manager and cache loader processes
...
if there were more than 512 listening sockets in configuration.
2012-11-20 13:37:55 +00:00
Ruslan Ermilov
5a1d76c9f2
Version bump.
2012-11-16 07:49:41 +00:00
Maxim Dounin
7b3731862b
Resolver: added missing memory allocation error handling.
2012-10-24 14:07:08 +00:00
Andrey Belov
f7b32c479d
Core: the "auto" parameter of the "worker_processes" directive.
...
The parameter will set the number of worker processes to the
autodetected number of available CPU cores.
2012-10-23 09:08:41 +00:00
Maxim Dounin
f8cc8969d5
Version bump.
2012-10-03 15:22:18 +00:00
Maxim Dounin
74ad4494a6
OCSP stapling: loading OCSP responses.
...
This includes the ssl_stapling_responder directive (defaults to OCSP
responder set in certificate's AIA extension).
OCSP response for a given certificate is requested once we get at least
one connection with certificate_status extension in ClientHello, and
certificate status won't be sent in the connection in question. This due
to limitations in the OpenSSL API (certificate status callback is blocking).
Note: SSL_CTX_use_certificate_chain_file() was reimplemented as it doesn't
allow to access the certificate loaded via SSL_CTX.
2012-10-01 12:47:55 +00:00
Maxim Dounin
6a0f47e079
Resolver: cached addresses are returned with random rotation now.
...
This ensures balancing when working with dynamically resolved upstream
servers with multiple addresses.
Based on patch by Anton Jouline.
2012-09-28 18:28:38 +00:00
Andrey Belov
8be233c8f2
Correct plural form for "path" in the whole source base.
2012-09-28 13:49:26 +00:00
Andrey Belov
b33a316883
Made sure to initialize the entire ngx_file_t structure.
...
Found by Coverity.
2012-09-28 13:15:11 +00:00
Maxim Dounin
f4473147e5
Version bump.
2012-09-26 15:52:06 +00:00
Ruslan Ermilov
9d6d33a561
Fixed overflow if ngx_slab_alloc() is called with very big "size" argument.
2012-08-30 15:09:21 +00:00
Ruslan Ermilov
da4ffd8955
Fixed the "include" directive.
...
The "include" directive should be able to include multiple files if
given a filename mask. Fixed this to work for "include" directives
inside the "map" or "types" blocks. The "include" directive inside
the "geo" block is still not fixed.
2012-08-28 13:31:01 +00:00
Ruslan Ermilov
43f6163063
Version bump.
2012-08-27 14:21:41 +00:00
Maxim Dounin
c22b87b2e4
Radix tree preallocation fix.
...
The preallocation size was calculated incorrectly and was always 8 due to
sizeof(ngx_radix_tree_t) accidentally used instead of sizeof(ngx_radix_node_t).
2012-08-18 23:17:58 +00:00
Maxim Dounin
89bd5f038a
Crypt: fixed handling of corrupted SSHA entries in password file.
...
Found by Coverity.
2012-08-16 12:05:58 +00:00
Maxim Dounin
42a75bba53
Resolver: fixed possible memory leak in ngx_resolver_create().
...
Found by Coverity.
2012-08-06 10:48:09 +00:00
Ruslan Ermilov
8ed4929a26
Fixed the -p parameter handling.
...
Ensure that the path supplied always ends with a `/' except when empty.
An empty value now corresponds to the current directory instead of `/'.
2012-08-03 12:52:32 +00:00
Maxim Dounin
25197b3229
Fixed possible use of old cached times if runtime went backwards.
...
If ngx_time_sigsafe_update() updated only ngx_cached_err_log_time, and
then clock was adjusted backwards, the cached_time[slot].sec might
accidentally match current seconds on next ngx_time_update() call,
resulting in various cached times not being updated.
Fix is to clear the cached_time[slot].sec to explicitly mark cached times
are stale and need updating.
2012-08-03 09:10:39 +00:00
Maxim Dounin
d053bacb9c
Added "const" to ngx_memcpy() with NGX_MEMCPY_LIMIT defined.
...
This fixes warning produced during compilation of the ngx_http_geoip_module
due to const qualifier being discarded.
2012-08-03 09:07:30 +00:00
Andrey Belov
1c42128e50
Reorder checks in ngx_shared_memory_add() for more consistent error messages.
2012-08-01 14:37:08 +00:00
Ruslan Ermilov
15ab0460ce
Version bump.
2012-07-31 21:47:56 +00:00
Ruslan Ermilov
deaf22d220
Core: ipv6only is now on by default.
...
There is a general consensus that this change results in better
consistency between different operating systems and differently
tuned operating systems.
Note: this changes the width and meaning of the ipv6only field
of the ngx_listening_t structure. 3rd party modules that create
their own listening sockets might need fixing.
2012-07-30 12:27:06 +00:00
Ruslan Ermilov
1c31039d1e
Improved diagnostics when a directive is specified in the wrong context.
2012-07-29 19:59:06 +00:00
Ruslan Ermilov
01f07bde7e
Reduced the number of preprocessor directives.
2012-07-26 14:47:42 +00:00
Ruslan Ermilov
1efcca36cc
Fixed compilation with -Wmissing-prototypes.
2012-07-24 15:09:54 +00:00
Ruslan Ermilov
e30a8f90fc
Version bump.
2012-07-17 04:42:38 +00:00
Ruslan Ermilov
bbfc96c703
Fixed typo in a function name.
2012-07-03 13:06:40 +00:00
Ruslan Ermilov
56cb80834c
Version bump.
2012-06-29 11:03:01 +00:00
Maxim Dounin
40a366c5a8
Fixed handling of conflicting wildcard server names.
...
With previous code wildcard names were added to hash even if conflict
was detected. This resulted in identical names in hash and segfault
later in ngx_hash_wildcard_init().
2012-06-18 14:06:00 +00:00
Ruslan Ermilov
2c49af818b
When "resolver" is configured with a domain name, only the first
...
resolved address was used. Now all addresses will be used.
2012-06-18 12:46:05 +00:00
Ruslan Ermilov
da8bb22634
Fixed crash in ngx_resolver_cleanup_tree().
...
If sending a DNS request fails with an error (e.g., when mistakenly trying
to send it to a local IP broadcast), such a request is not deleted if there
are clients waiting on it. However, it was still erroneously removed from
the queue. Later ngx_resolver_cleanup_tree() attempted to remove it from
the queue again that resulted in a NULL pointer dereference.
2012-06-18 12:30:45 +00:00
Ruslan Ermilov
b9feaa8dd9
Version bump.
2012-06-18 11:07:44 +00:00
Ruslan Ermilov
ac7f704931
Support for IPv6 literals and an optional port in resolver.
2012-06-04 14:23:27 +00:00
Maxim Dounin
596226f6f7
Support for IPv6 literals in proxy_pass and so on.
2012-06-04 14:07:34 +00:00
Maxim Dounin
01f1e4d1dc
Resolver: fixed format specification.
...
Patch by Yichun Zhang (agentzh).
2012-06-03 23:18:24 +00:00
Ruslan Ermilov
887f514e9f
Code reduction (no functional changes).
2012-06-01 11:35:09 +00:00
Ruslan Ermilov
d2e005c39d
Fixed potential null pointer dereference in ngx_resolver_create().
...
While here, improved error message.
2012-05-22 13:12:14 +00:00
Ruslan Ermilov
d230df40b2
Removed historical and now redundant syntax pre-checks in ngx_parse_url().
2012-05-21 10:55:10 +00:00
Valentin Bartenev
1c168c7875
Fixed the ngx_regex.h header file compatibility with C++.
2012-05-17 13:47:04 +00:00
Ruslan Ermilov
6888516b2b
Version bump.
2012-05-16 13:09:39 +00:00
Maxim Dounin
7d863c0181
Resolver: protection from duplicate responses.
...
If we already had CNAME in resolver node (i.e. rn->cnlen and rn->u.cname
set), and got additional response with A record, it resulted in rn->cnlen
set and rn->u.cname overwritten by rn->u.addr (or rn->u.addrs), causing
segmentation fault later in ngx_resolver_free_node() on an attempt to free
overwritten rn->u.cname. The opposite (i.e. CNAME got after A) might cause
similar problems as well.
2012-05-14 09:13:45 +00:00
Ruslan Ermilov
487ba70126
Fixed segmentation fault in ngx_resolver_create_name_query().
...
If name passed for resolution was { 0, NULL } (e.g. as a result
of name server returning CNAME pointing to ".") pointer wrapped
to (void *) -1 resulting in segmentation fault on an attempt to
dereference it.
Reported by Lanshun Zhou.
2012-04-26 12:58:42 +00:00
Maxim Dounin
6ad02389c3
Version bump.
2012-04-26 11:20:29 +00:00
Maxim Dounin
d68dd358e1
Version bump.
2012-04-23 12:54:14 +00:00
Igor Sysoev
c7bb66a9a3
Fix of "%f" format handling.
...
ngx_sprintf("%.2f", 0.999) incorrectly resulted in "0.100" instead of "1.00".
2012-04-23 11:11:32 +00:00
Ruslan Ermilov
e9a7f4f5f6
Don't silently ignore the last line of configuration file that
...
consists solely of one unterminated token (inspired by #150 ).
2012-04-18 13:30:43 +00:00
Ruslan Ermilov
43d2b1c045
Fixed grammar in error messages.
2012-04-12 19:35:41 +00:00
Maxim Dounin
e6724ebe54
Version bump.
2012-04-12 16:34:59 +00:00
Ruslan Ermilov
3995395dcb
Reduced the number of lines of code in ngx_inet_addr().
2012-04-12 10:20:33 +00:00
Ruslan Ermilov
a5bb616af4
Improved readability of the code that produces bitmask from prefix.
...
In collaboration with Maxim Dounin.
2012-04-11 17:18:15 +00:00
Maxim Dounin
baa239c487
Fixed signed integer overflows in timer code (ticket #145 ).
...
Integer overflow is undefined behaviour in C and this indeed caused
problems on Solaris/SPARC (at least in some cases). Fix is to
subtract unsigned integers instead, and then cast result to a signed
one, which is implementation-defined behaviour and used to work.
Strictly speaking, we should compare (unsigned) result with the maximum
value of the corresponding signed integer type instead, this will be
defined behaviour. This will require much more changes though, and
considered to be overkill for now.
2012-04-06 23:46:09 +00:00
Andrey Belov
bd6d421816
Comment fixed.
2012-04-05 19:49:34 +00:00
Ruslan Ermilov
bffbbeb73f
In ngx_ptocidr(), check that the supplied prefix length is within
...
the allowed range.
2012-04-03 08:22:00 +00:00
Ruslan Ermilov
47a04aaa27
Fixed spelling in multiline C comments.
2012-04-03 07:37:31 +00:00
Maxim Dounin
525e1f75e4
Version bump.
2012-04-02 21:28:31 +00:00
Maxim Dounin
e34ff16f67
Resolver: added missing sanity checking when creating name queries.
...
Found by Veracode.
2012-03-22 11:57:18 +00:00
Ruslan Ermilov
fbd32d4d19
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
2012-03-21 13:58:51 +00:00
Maxim Dounin
d694ff7798
Version bump.
2012-03-15 17:43: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
Ruslan Ermilov
b74f8ffce4
Fixed spelling in single-line comments.
2012-02-28 11:31:05 +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
346791187f
Disable symlinks: added the "from" parameter support to the open file cache.
2012-02-27 16:46:57 +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
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
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
0f3d6715e7
Version bump.
2012-02-09 16:18:02 +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
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
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
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
afb7f22c03
Version bump.
2011-12-19 11:21:46 +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
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
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
1b9b19d7e2
Added escaping of double quotes in ngx_escape_html().
...
Patch by Zaur Abasmirzoev.
2011-11-25 16:36:02 +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
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
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
Maxim Dounin
80e3cba5fd
Reverted incorrect change in internal md5 (part of r3928).
2011-11-14 13:38:02 +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
0d03a44aab
Version bump.
2011-11-01 15:10:46 +00:00
Ruslan Ermilov
f12d6ceb65
Fixed port range checking.
2011-10-25 13:48:43 +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
Igor Sysoev
6242f77617
Version bump.
2011-10-17 15:39:59 +00:00
Maxim Dounin
ba76a89d4b
Fixed utf8 decode (ticket #25 ).
...
Patch by Alexey Kuts.
2011-10-13 13:56: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
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
Igor Sysoev
ab0078a4c8
Version bump.
2011-10-05 13:13:25 +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
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
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
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
Igor Sysoev
631fa929d3
Version bump.
2011-08-23 14:22:34 +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
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
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
475a5dfcf1
bump version
2011-08-02 12:39:38 +00:00
Igor Sysoev
c2cafadfa5
elimination of reading cache files by cache loader
2011-07-24 19:46:53 +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
2551f4a55d
bump version: 1.1.0 development version
2011-07-20 09:29:25 +00:00
Igor Sysoev
99f2b9e063
fix building by MSVC
2011-07-18 15:00:05 +00:00
Igor Sysoev
0a860a1c1d
bump version
2011-06-27 15:34:44 +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
dc336358ab
bump version
2011-05-11 09:19:48 +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
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
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
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
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
b8fb0a15a2
bump version
2011-04-04 09:46:00 +00:00
Igor Sysoev
c9d671cd81
$time_iso8601 log variable
...
patch by Michael Lustfield
2011-03-16 15:46:57 +00:00
Igor Sysoev
32c73df97a
remove semicolon, because it is already in "nginx: " prefix
2011-02-21 11:47:28 +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
ab54e21633
bump version
2011-01-27 12:43:11 +00:00
Igor Sysoev
dc61c0a153
bump version
2010-12-14 22:54:04 +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
86ffd9b10f
bump version
2010-11-30 13:26:21 +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
7f31a2098d
use copied strerror() messages and autoconfigured sys_nerr value
2010-11-25 11:04:03 +00:00
Igor Sysoev
601ca7cd6e
bump version
2010-11-24 13:41:37 +00:00
Igor Sysoev
89eae52df8
file AIO read may be posted inside loop
2010-10-12 12:06:52 +00:00
Igor Sysoev
61d5e5e67f
bump version
2010-10-04 13:50:09 +00:00
Igor Sysoev
a397c7faaa
bump version
2010-09-28 06:46:58 +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
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
2cb30f153f
the -q switch
2010-09-02 13:43:02 +00:00
Igor Sysoev
f380df5e20
bump version
2010-08-25 12:30:08 +00:00
Igor Sysoev
6dd6aefaa7
bump version
2010-08-03 18:24:18 +00:00
Igor Sysoev
0e0e0af51b
escape ";" in arguments
2010-07-30 13:25:19 +00:00
Igor Sysoev
6f2796af04
bump version
2010-07-29 08:10:22 +00:00
Igor Sysoev
1daef7d1b0
bump version
2010-07-19 15:27:06 +00:00
Igor Sysoev
e48f042f40
bump version
2010-07-14 11:09:56 +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
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
187538d1eb
bump version
2010-07-01 12:56:32 +00:00
Igor Sysoev
ce03ba019e
fix IPv6 listen socket handling while reconfiguring
2010-06-30 12:01:56 +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
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
dede73dda9
bump version
2010-06-15 12:41:13 +00:00
Igor Sysoev
7935d4bff7
bump version
2010-06-07 13:34:56 +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
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
9434ae59e8
bump version
2010-05-27 12:55:05 +00:00
Igor Sysoev
58e1f27d2b
bump version
2010-05-18 16:20:02 +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
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
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
dce9672ca6
bump version
2010-04-23 08:14:57 +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
231856b913
bump version
2010-04-02 14:18:23 +00:00
Igor Sysoev
170a54f326
escape ampersand in argument while rewrite
2010-04-01 12:45:59 +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
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
1c9f74852f
bump version
2010-03-10 13:49:17 +00:00
Igor Sysoev
b87fba807e
const char *fmt in ngx_conf_log_error()
2010-02-12 09:45:05 +00:00
Igor Sysoev
d1311dfc71
bump version
2010-02-12 09:31:01 +00:00
Igor Sysoev
2f5bcf2d17
bump version
2010-01-28 08:22:45 +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
089b2fd31e
add context to a resolver log
2010-01-11 11:01:02 +00:00
Igor Sysoev
9a5eabc4ac
bump version
2009-12-25 14:57:10 +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
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
a734e33720
chmod unix listen domain socket to 0666
2009-11-30 11:26:24 +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
0bd426def1
bump version
2009-11-23 13:09:33 +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
57acd7b421
bump version
2009-11-16 16:00:12 +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
c05f20ec2e
regex named captures
2009-11-16 12:19:02 +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
f4992bbe14
bump version
2009-11-11 21:06:36 +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
a993d55b0f
bump version
2009-11-11 12:30:36 +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
bcc44e2549
allow to inherit unix domain sockets while online upgrade
2009-11-04 18:36:43 +00:00
Igor Sysoev
822503ea41
bump version
2009-11-04 11:20:54 +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
8b816d88a9
change ngx_parse_addr() interface
2009-11-02 16:11:06 +00:00
Igor Sysoev
1d52beba73
ngx_parse_addr()
2009-11-02 15:20:42 +00:00