summaryrefslogtreecommitdiffhomepage
path: root/src/test (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-04-16Using malloc/free for the http fields hash.Max Romanov1-12/+5
This is required due to lack of a graceful shutdown: there is a small gap between the runtime's memory pool release and router process's exit. Thus, a worker thread may start processing a request between these two operations, which may result in an http fields hash access and subsequent crash. To simplify issue reproduction, it makes sense to add a 2 sec sleep before exit() in nxt_runtime_exit().
2020-03-30Configuration: support for rational numbers.Valentin Bartenev1-3/+3
2019-12-06Isolation: allowed the use of credentials with unpriv userns.Tiago Natel3-0/+608
The setuid/setgid syscalls requires root capabilities but if the kernel supports unprivileged user namespace then the child process has the full set of capabilities in the new namespace, then we can allow setting "user" and "group" in such cases (this is a common security use case). Tests were added to ensure user gets meaningful error messages for uid/gid mapping misconfigurations.
2019-11-11Fixing libunit 'off by 2' issue in library.Max Romanov1-4/+4
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-09-30HTTP parser: removed unused "exten" field.Valentin Bartenev1-22/+0
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-17HTTP parser: fixed parsing of target after literal space character.Valentin Bartenev1-1/+14
In theory, all space characters in request target must be encoded; however, some clients may violate the specification. For the sake of interoperability, Unit supports unencoded space characters. Previously, if there was a space character before the extension or arguments parts, those parts weren't recognized. Also, quoted symbols and complex target weren't detected after a space character.
2019-09-16HTTP parser: removed unused "plus_in_target" flag.Valentin Bartenev1-20/+10
2019-09-16HTTP parser: removed unused "exten_start" and "args_start" fields.Valentin Bartenev1-16/+8
2019-08-20Introducing websocket support in router and libunit.Max Romanov2-0/+453
2018-11-15Fixed lvlhsh test on 64-bit big-endian systems.Valentin Bartenev1-1/+1
The nxt_murmur_hash2() generated 4-byte hash that was stored in uintptr_t, which was 8 bytes long on 64-bit systems. At each iteration, it took the previous key and hashed it again. The problem was that it took only the first 4 bytes of the key, and these 4 bytes were always zero on 64-bit big-endian system. That resulted in equal keys at each iteration. The bug was discovered on IBM/S390x.
2018-08-06Unit application library.Max Romanov1-0/+191
Library now used in all language modules. Old 'nxt_app_*' code removed. See src/test/nxt_unit_app_test.c for usage sample.
2018-07-03HTTP parser: relaxed checking of fields values.Valentin Bartenev1-1/+1
Allowing characters up to 0xFF doesn't conflict with RFC 7230. Particularly, this make it possible to pass unencoded UTF-8 data through HTTP headers, which can be useful.
2018-06-25Introduced nxt_length() macro.Valentin Bartenev1-2/+2
2018-04-05Style.Valentin Bartenev1-1/+1
2018-04-04Style: capitalized letters in hexadecimal literals.Valentin Bartenev3-25/+25
2018-03-29nxt_lvlhsh_each() refactoring and nxt_lvlhsh_each_init().Igor Sysoev1-2/+1
2018-03-29nxt_lvlhsh_retrieve().Igor Sysoev1-0/+37
2018-03-29nxt_lvlhsh_peek().Igor Sysoev1-2/+14
2018-03-15HTTP parser: allowing tabs in field values as per RFC 7230.Valentin Bartenev1-0/+24
2018-03-15HTTP parser: restricting allowed characters in fields values.Valentin Bartenev1-0/+18
According to RFC 7230 only printable 7-bit ASCII characters are allowed in field values.
2018-03-15HTTP parser: fixed parsing of field values ending with space.Valentin Bartenev1-0/+6
This closes #82 issue on GitHub.
2018-01-24Fixed formatting in nxt_sprintf() and logging.Sergey Kandaurov1-1/+1
2018-01-24Using size_t for the field width type of the "%*s" specifier.Sergey Kandaurov1-2/+3
2018-01-15Checking for major HTTP version.Valentin Bartenev1-0/+5
2018-01-15HTTP parser: improved error reporting.Valentin Bartenev1-11/+11
2018-01-09HTTP parser: allowing underscore in header field names.Valentin Bartenev1-1/+1
2017-12-25HTTP parser: reworked header fields handling.Valentin Bartenev1-28/+89
2017-11-21Tests: move existing tests to "src" folder.Andrey Zelenkov18-0/+3236