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