summaryrefslogtreecommitdiffhomepage
path: root/src/core (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2012-04-23Version bump.Maxim Dounin1-2/+2
2012-04-23Fix of "%f" format handling.Igor Sysoev1-16/+19
ngx_sprintf("%.2f", 0.999) incorrectly resulted in "0.100" instead of "1.00".
2012-04-18Don't silently ignore the last line of configuration file thatRuslan Ermilov1-1/+1
consists solely of one unterminated token (inspired by #150).
2012-04-12Fixed grammar in error messages.Ruslan Ermilov2-2/+3
2012-04-12Version bump.Maxim Dounin1-2/+2
2012-04-12Reduced the number of lines of code in ngx_inet_addr().Ruslan Ermilov1-5/+1
2012-04-11Improved readability of the code that produces bitmask from prefix.Ruslan Ermilov1-2/+2
In collaboration with Maxim Dounin.
2012-04-06Fixed signed integer overflows in timer code (ticket #145).Maxim Dounin1-2/+1
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-05Comment fixed.Andrey Belov1-1/+1
2012-04-03In ngx_ptocidr(), check that the supplied prefix length is withinRuslan Ermilov1-0/+7
the allowed range.
2012-04-03Fixed spelling in multiline C comments.Ruslan Ermilov5-6/+6
2012-04-02Version bump.Maxim Dounin1-2/+2
2012-03-22Resolver: added missing sanity checking when creating name queries.Maxim Dounin1-1/+5
Found by Veracode.
2012-03-21worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.Ruslan Ermilov2-11/+11
2012-03-15Version bump.Maxim Dounin1-2/+2
2012-03-05Whitespace fixes.Maxim Dounin1-1/+1
2012-03-05Version bump.Maxim Dounin1-2/+2
2012-02-28Fixed spelling in single-line comments.Ruslan Ermilov1-1/+1
2012-02-27Fix of rbtree lookup on hash collisions.Maxim Dounin2-22/+12
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-27Fixed null pointer dereference in resolver (ticket #91).Maxim Dounin1-5/+6
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-27Disable symlinks: added the "from" parameter support to the open file cache.Valentin Bartenev2-1/+26
2012-02-21Disable symlinks: use O_SEARCH|O_DIRECTORY to open path components.Valentin Bartenev1-30/+14
2012-02-21Disable symlinks: don't allow creating or truncating a file via a symlink inValentin Bartenev1-1/+3
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-21Disable symlinks: cleanups once again.Valentin Bartenev1-8/+10
In collaboration with Ruslan Ermilov.
2012-02-20Disable symlinks: added explicit cast of AT_FDCWD (ticket #111).Maxim Dounin1-4/+4
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-20Disable symlinks: error handling cleanup again.Maxim Dounin1-4/+4
2012-02-20Version bump.Maxim Dounin1-2/+2
2012-02-15Disable symlinks: fixed edge cases of path handling.Maxim Dounin1-14/+60
This includes non-absolute pathnames, multiple slashes and trailing slashes. In collaboration with Valentin Bartenev.
2012-02-15Disable symlinks: cleanup error handling.Maxim Dounin1-41/+70
Notably this fixes NGX_INVALID_FILE/NGX_FILE_ERROR mess, and adds logging of close() errors. In collaboration with Valentin Bartenev.
2012-02-13Added disable_symlinks directive.Andrey Belov3-24/+255
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-13Changed ngx_open_and_stat_file() to use ngx_str_t.Andrey Belov1-19/+20
No functional changes.
2012-02-13Time parsing cleanup.Maxim Dounin3-13/+2
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-09Version bump.Maxim Dounin1-2/+2
2012-01-30Fixed memory leak on HUP signal when PCRE JIT was used.Valentin Bartenev1-1/+54
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-24Fixed grammar in PCRE JIT error log message.Valentin Bartenev1-1/+1
2012-01-18Copyright updated.Maxim Konovalov58-0/+58
2012-01-18Version bump.Maxim Konovalov1-2/+2
2012-01-16Fixed division by zero exception in ngx_hash_init().Valentin Bartenev1-1/+1
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-10Changed ngx_log_debugN() macros to verify the number of argumentsRuslan Ermilov1-9/+32
when built with debugging.
2011-12-27Version bump.Maxim Dounin1-2/+2
2011-12-26Added support for regex study and PCRE JIT (ticket #41) optimizations onValentin Bartenev2-7/+216
configuration phase.
2011-12-19Version bump.Maxim Dounin1-1/+1
2011-12-06Removed unused function ngx_regex_capture_count().Valentin Bartenev1-17/+0
The function has been unused since r3326.
2011-12-06Version bump.Maxim Dounin1-2/+2
2011-12-05Added the "so_keepalive=" parameter to the "listen" directive.Valentin Bartenev2-0/+57
The "so_keepalive" directive in mail module was deprecated. Thanks to Vsevolod Stakhov for initial work.
2011-11-29Version bump.Maxim Dounin1-2/+2
2011-11-28Added (void) as we intentionally ignore returned values.Maxim Dounin1-1/+1
Requested by Igor Sysoev.
2011-11-25Added escaping of double quotes in ngx_escape_html().Maxim Dounin1-0/+9
Patch by Zaur Abasmirzoev.
2011-11-23Fixed build without atomic operations.Maxim Dounin1-2/+2
2011-11-23Added shmtx interface to forcibly unlock mutexes.Maxim Dounin4-47/+83
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().