summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2019-10-03Added tag 1.12.0-1 for changeset 0f35b3937026Andrei Belov1-0/+1
2019-10-03Merged with the default branch.Andrei Belov76-223/+445
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.
2019-09-30Fixed exiting if a signal arrives during discovery.Max Romanov1-35/+38
When Unit starts, the main process waits for module discovery message for a while. If a QUIT signal arrives at this time, the router and controller processes created by main and Unit stay running. Also, the main process doesn't stop them after the second QUIT signal is received in this case.
2019-09-26Refactored nxt_process_create() for more explicit pipe closing.Valentin Bartenev1-40/+29
2019-09-26Fixed descriptors leak on process creation.Valentin Bartenev1-0/+12
The leak has been introduced in 325b315e48c4. This closes #322 issue in GitHub.
2019-09-25Tests: fixed hanging of Go tests.Andrey Zelenkov2-14/+24
This closes #319 issue on GitHub.
2019-09-25Packaging: debian: drop a surplus line from init scriptKonstantin Pavlov1-2/+0
2019-09-25Packaging: debian: changed NAME in the init scriptKonstantin Pavlov1-1/+1
This fixes the following issues: - inability to stop unit daemon - default configuration from /etc/default/unit are not propagated to the daemon
2019-09-25Packages: added logrotate configuration for Debian packages.Andrei Belov2-0/+19
While here, made logrotate configuration consistent between rpm and deb. This closes #323 issue on GitHub.
2019-09-24Tests: static tests with file system objects.Andrey Zelenkov1-0/+24
2019-09-20Removed linux/sched.h include.Tiago Natel1-4/+0
The <sched.h> is already included by nxt_unix.h. This closes #314 PR on GitHub.
2019-09-20Releasing init struct in case of errors.Tiago Natel1-4/+10
Found by Coverity (CID 349485).
2019-09-20Closing leaking file descriptor.Tiago Natel1-0/+4
Found by Coverity (CID 349484).
2019-09-24Static: returning 404 for Unix domain sockets.Valentin Bartenev2-0/+12
It's now similar to how attempts to access other non-regular files are handled.
2019-09-23PHP: zeroing the whole file_handle structure.Sergey Kandaurov1-2/+2
Fixes segfaults with PHP 7.4.
2019-09-20Fixed segfault if an inappropriate file system object is requested.Valentin Bartenev1-1/+2
Found by Coverity (CID 349483).
2019-09-20Version bump.Valentin Bartenev1-2/+2
2019-09-20Updated tag 1.11.0-2 for changeset c27c08b0deeeKonstantin Pavlov1-1/+1
2019-09-20Packaging: added changes for 1.11.0-2 release.1.11.0-2Konstantin Pavlov1-0/+21
This fixes debian changelog generation with an appropriate version.
2019-09-20Added tag 1.11.0-2 for changeset 9e6b9345c8daKonstantin Pavlov1-0/+1
2019-09-20Packages: bump docker release for 1.11.0-2.Konstantin Pavlov9-9/+9
2019-09-20Packaging: bump packages DEFAULT_RELEASE.Konstantin Pavlov3-3/+3
I overlooked that 7d54dfd17098 is partial, and didnt revert MODULE_RELEASE_* for the modules. However, Debian builds succeeded since MODULE_RELEASE_* are not used to generate versions in debian/changelog, resulting in broken dependencies between modules (jsc_common and jsc*). The easiest fix is to bump DEFAULT_RELEASE again.
2019-09-19Updated tag 1.11.0-1 for changeset 7d54dfd17098Konstantin Pavlov1-1/+1
2019-09-19Packaging: revert DEFAULT_RELEASE back to 1.1.11.0-1Konstantin Pavlov3-3/+3
2019-09-19Added tag 1.11.0-1 for changeset 282c8f9fe43cKonstantin Pavlov1-0/+1
2019-09-19Merged with the default branch.Konstantin Pavlov200-922/+20643
2019-09-19Added tag 1.11.0 for changeset 3b1601ac0f2fValentin Bartenev1-0/+1
2019-09-19Generated Dockerfiles for Unit 1.11.0.1.11.0Valentin Bartenev9-9/+9
2019-09-19Added version 1.11.0 CHANGES.Valentin Bartenev2-0/+84
2019-09-19Tests: serving static files.Andrey Zelenkov1-0/+376
2019-09-19Basic support for serving static files.Valentin Bartenev12-29/+953
2019-09-19Initial applications isolation support using Linux namespaces.Tiago de Bem Natel de Moura21-165/+1431
2019-09-19Releasing WebSocket frame in case of buffer allocation failure.Max Romanov1-0/+2
Found by Coverity (CID 349456).
2019-09-18Fixing master process crash after failed fork.Max Romanov2-3/+8
This closes #312 issue on GitHub.
2019-09-18Go: removing nxt_main.h usage.Max Romanov1-3/+2
One small step to Go modules support.
2019-09-18Fixing request release order to avoid crashes on exit.Max Romanov1-6/+10
Each request references the router process structure that owns all memory maps. The process structure has a reference counter; each request increases the counter to lock the structure in memory until request processing ends. Incoming and outgoing buffers reference memory maps that the process owns, so the process structure should be released only when all buffers are released to avoid invalid memory access and a crash. This describes the libunit library mechanism used for application processes. The background of this issue is as follows: The issue was found on buildbot when the router crashed during Java websocket tests. The Java application receives a notification from the master process; when the notification is processed, libunit deletes the process structure from its process hash and decrements the use counter; however, active websocket connections maintain their use counts on the process structure. After that, when the master process is stopping the application, libunit releases active websocket connections. At this point, it's important to release the connections' memory buffers before the corresponding process structure and all shared memory segments are released.
2019-09-18Go: do not store pointer to Go object.Max Romanov2-2/+49
To pass Go object references to C and back we use hack with casting to unsafe and then to uintptr. However, we should not store such references because Go not guaratnee it will be available by the same address. Introducing map with integer key helps to avoid dereference stored address. This closes #253 and #309 issues on GitHub.