summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2019-11-14Event engine memory cache refactored.Igor Sysoev3-14/+48
2019-11-14Using request task.Igor Sysoev3-2/+13
2019-11-14Replacing pass with action.Igor Sysoev6-110/+162
2019-11-14Fixed connect(2) errors processing on old Linuxes.Igor Sysoev4-30/+61
While connect(2) states that non-blocking connect should use EPOLLOUT: EINPROGRESS The socket is non-blocking and the connection cannot be completed immediately. It is possible to select(2) or poll(2) for completion by selecting the socket for writing. After select(2) indicates writability, use getsockopt(2) to read the SO_ERROR option at level SOL_SOCKET to determine whether connect() completed successfully (SO_ERROR is zero) or unsuccessfully (SO_ERROR is one of the usual error codes listed here, explaining the reason for the failure). On connect error, Linux 2.6.32 (CentOS 6) may return EPOLLRDHUP, EPOLLERR, EPOLLHUP, EPOLLIN, but not EPOLLOUT.
2019-11-13Tests: fixed websocket tests.Andrei Zeliankou3-81/+38
2019-11-13Tests: added Python test with threading.Andrei Zeliankou2-0/+46
2019-11-13Python: releasing GIL while waiting for a request.Valentin Bartenev1-15/+23
It unblocks other threads that can be forked by the application to work in background. This closes #336 issue on GitHub.
2019-11-13Tests: added Ruby test with constants.Andrey Zelenkov2-0/+38
2019-11-13Ruby: fixing initialization sequence.Max Romanov1-4/+7
There was a change (ruby/ruby@6c70fed) in Ruby 2.6 that moved RUBY_DESCRIPTION global constant definition out of Init_version(). Unit initialized Ruby incorrectly, so the constant was not defined. This closes #330 issue on GitHub.
2019-11-11Fixing libunit 'off by 2' issue in library.Max Romanov4-16/+27
Name and value in each header are 0-terminated, so additional 2 bytes should be allocated for them. There were several attempts to add these 2 bytes to headers in language modules, but some modules weren't updated. Also, adding these 2 bytes is specific to the implementation which may be changed later, so extending this mechanics to modules may cause errors.
2019-11-08Tests: fixed operator in http.py.Andrey Zelenkov1-1/+1
2019-11-07Respecting AR environment variable to configure ar binary.Valentin Bartenev3-12/+22
2019-10-29Process port refactoring.Hong Zhi Dao6-67/+65
- Introduced nxt_runtime_process_port_create(). - Moved nxt_process_use() into nxt_process.c from nxt_runtime.c. - Renamed nxt_runtime_process_remove_pid() as nxt_runtime_process_remove(). - Some public functions transformed to static. This closes #327 issue on GitHub.
2019-10-29Allocating process init struct from runtime memory pool.Max Romanov2-17/+14
This avoids memory leak reports from the address sanitizer.
2019-10-28Added clone syscall check for uid/gid mapping.Tiago Natel1-1/+1
Now it's possible to pass -DNXT_HAVE_CLONE=0 for debugging.
2019-10-28Releasing the memory of removed thread pools at exit.Tiago Natel1-0/+2
2019-10-23Tests: added test with invalid "working_directory" value.Andrey Zelenkov1-0/+12
2019-10-23Tests: more URI normalization tests.Andrey Zelenkov1-8/+52
2019-10-23Tests: added USR1 signal test for unit.log.Andrey Zelenkov3-37/+101
2019-10-23Tests: more static tests.Andrey Zelenkov1-0/+6
2019-10-23Tests: improved handshake for websocket tests.Andrey Zelenkov2-7/+15
2019-10-23Tests: style.Andrey Zelenkov1-1/+3
2019-10-23Tests: check initial configuration in test_access_log.py.Andrey Zelenkov1-1/+5
2019-10-23Tests: check initial configuration in test_routing.py.Andrey Zelenkov1-27/+31
2019-10-23Tests: added flush() in "errors_write" Python application.Andrey Zelenkov1-0/+1
2019-10-23Python: fixing Python 3.8 build with clang.Max Romanov2-54/+8
Python 3.8 has 'tp_print' field in PyTypeObject struct. This field is attributed as deprecated. So, clang generates warning (which is turned to error) as a result of initializing this field. From the other hand, it is impossible to omit this field in positional initialization. The solution is to use designated initializer. Silencing usage message during configure python. This is related to #331 issue on GitHub.
2019-10-22Improved error logging when uid/gid map is not properly set.Tiago Natel1-2/+30
When using "credential: true", the new namespace starts with a completely empty uid and gid ranges. Then, any setuid/setgid/setgroups calls using ids not properly mapped with uidmap and gidmap fields return EINVAL, meaning the id is not valid inside the new namespace.
2019-10-22Fixing process crash in case of module load error.Max Romanov1-0/+3
This is related to #330 issue on GitHub.
2019-10-22Fixing idle connection close function.Max Romanov1-1/+1
There was a typo: nxt_queue_head() used instead of nxt_queue_first() in connection iteration loop. This prevents idle connection close on quit. This closes #334 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
2019-10-22Python: fixing build for Python 3.8.Max Romanov2-0/+8
Thanks to tonyafanasyev. This is related to #331 issue on GitHub.
2019-10-11Fixed passing false in namespace flags.Tiago Natel4-4/+42
This patch closes #328 in github.
2019-10-10Style fixes.Igor Sysoev7-22/+35
2019-10-10Changed nxt_memcasecmp() interface to avoid casts.Igor Sysoev3-10/+12
2019-10-09Configuration: added check for mandatory options of "action".Valentin Bartenev1-2/+33
2019-10-08Tests: default port number used.Andrey Zelenkov1-1/+1
2019-10-08Tests: increased subprocess timeout on Unit exit.Andrey Zelenkov1-13/+13
Also changed order of subprocess status checks. _terminate_process() method removed.
2019-10-07Version bump.Valentin Bartenev1-2/+2
2019-10-03Added tag 1.12.0 for changeset b391df5f0102Valentin Bartenev1-0/+1
2019-10-03Generated Dockerfiles for Unit 1.12.0.1.12.0Valentin Bartenev9-9/+9
2019-10-03Added version 1.12.0 CHANGES.Valentin Bartenev2-0/+66
2019-10-03Ignoring EINTR error in kqueue.Igor Sysoev1-1/+4
2019-10-03Regenerated Dockerfiles.Konstantin Pavlov9-0/+36
2019-10-03Docker: added an entrypoint to make configuration easier.Konstantin Pavlov2-0/+75
Docker images now accept shell scripts, json files and certificate chain bundles to provide configuration on a container start by placing them into /docker-entrypoint.d/ directory.
2019-10-02Added response status code to error page body.Valentin Bartenev1-8/+10
Also the error page markup is now valid according to HTML5 specification. All optional tags were omitted.
2019-10-02Fixed "make tests" build without preceding "make".Max Romanov6-10/+7
Currently almost all Unit object files depends on generated nxt_version.h. This patch adds missing dependence and fixes running make with multiple jobs. This closes #318 issue on GitHub.
2019-10-01Go: fixing header buffer size calculation.Max Romanov1-1/+1
Header names and values are stored 0-terminated for ease of use in different languages, so magic number 2 should be added to each name-value pair size.
2019-09-30HTTP: corrected allocation size for tail chunk.Valentin Bartenev1-1/+1
2019-09-30HTTP parser: removed unused "exten" field.Valentin Bartenev3-44/+2
This field was intended for MIME type lookup by file extension when serving static files, but this use case is too narrow; only a fraction of requests targets static content, and the URI presumably isn't rewritten. Moreover, current implementation uses the entire filename for MIME type lookup if the file has no extension. Instead of extracting filenames and extensions when parsing requests, it's easier to obtain them right before serving static content; this behavior is already implemented. Thus, we can drop excessive logic from parser.
2019-09-30HTTP parser: normalization of paths ending with "." or "..".Valentin Bartenev1-8/+28
Earlier, the paths were normalized only if there was a "/" at the end, which is wrong according to section 5.2.4 of RFC 3986 and hypothetically may allow to the directory above the document root.
2019-09-30Fixed error processing in SSL operations.Igor Sysoev1-13/+3
Before this fix EWOULDBLOCK error was fatal for SSL write operation. This closes #325 issue on GitHub.