summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_conf_validation.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-11-17HTTP parser: allowed more characters in header field names.Valentin Bartenev1-0/+3
Previously, all requests that contained in header field names characters other than alphanumeric, or "-", or "_" were rejected with a 400 "Bad Request" error response. Now, the parser allows the same set of characters as specified in RFC 7230, including: "!", "#", "$", "%", "&", "'", "*", "+", ".", "^", "`", "|", and "~". Header field names that contain only these characters are considered valid. Also, there's a new option introduced: "discard_unsafe_fields". It accepts boolean value and it is set to "true" by default. When this option is "true", all header field names that contain characters in valid range, but other than alphanumeric or "-" are skipped during parsing. When the option is "false", these header fields aren't skipped. Requests with non-valid characters in header field names according to RFC 7230 are rejected regardless of "discard_unsafe_fields" setting. This closes #422 issue on GitHub.
2020-11-16Isolation: added option to disable "procfs" mount.Tiago Natel de Moura1-0/+3
Now users can disable the default procfs mount point in the rootfs. { "isolation": { "automount": { "procfs": false } } }
2020-11-13Isolation: added option to disable tmpfs mount.Tiago Natel de Moura1-0/+3
Now users can disable the default tmpfs mount point in the rootfs. { "isolation": { "automount": { "tmpfs": false } } }
2020-11-10Python: supporting ASGI legacy protocol.Max Romanov1-0/+26
Introducing manual protocol selection for 'universal' apps and frameworks.
2020-11-05Perl: request processing in multiple threads.Max Romanov1-0/+8
This closes #486 issue on GitHub.
2020-11-05Ruby: request processing in multiple threads.Max Romanov1-0/+4
This closes #482 issue on GitHub.
2020-11-05Java: request processing in multiple threads.Max Romanov1-0/+8
This closes #458 issue on GitHub.
2020-11-05Python: request processing in multiple threads.Max Romanov1-0/+58
This closes #459 issue on GitHub.
2020-10-13Using union instead of "void *".Igor Sysoev1-102/+110
2020-10-13Using C99 style declaration.Igor Sysoev1-563/+423
2020-10-13Reordering declarations.Igor Sysoev1-296/+317
2020-09-18Python: app module callable name configuration.Max Romanov1-0/+6
Now it is possible to specify the name of the application callable using optional parameter 'callable'. Default value is 'application'. This closes #290 issue on GitHub.
2020-08-25Isolation: added "automount" option.Tiago Natel de Moura1-0/+21
Now it's possible to disable default bind mounts of languages by setting: { "isolation": { "automount": { "language_deps": false } } } In this case, the user is responsible to provide a "rootfs" containing the language libraries and required files for the application.
2020-08-21Configuration: removed "reschedule_timeout" option.Valentin Bartenev1-6/+0
It's not used since cbcd76704c90. This option is a leftover from previous IPC between router and applications processes. It was never documented, though. Thanks to 洪志道 (Hong Zhi Dao).
2020-08-19Configuration: improved error message of invalid listener address.Valentin Bartenev1-2/+9
Thanks to 洪志道 (Hong Zhi Dao). This closes #466 issue on GitHub.
2020-08-13Basic variables support.Valentin Bartenev1-0/+21
2020-07-28Configuration: fixed buffer over-read in pattern validation.Axel Duch1-2/+3
There was an undefined behavior in the validation function, caused by testing one character after the string if a wildcard was at the end.
2020-07-24Configuration: added checking for presence of mandatory fields.Valentin Bartenev1-3/+131
2020-07-24Added missing ending indicator in object members validation lists.Valentin Bartenev1-1/+5
This fixes undefined behaviour due to array over-read if an unknown parameter is specified in an uidmap, a gidmap, or a php target object.
2020-07-24Configuration: removing redundant check.Axel Duch1-3/+3
Thanks to 洪志道 (Hong Zhi Dao).
2020-07-04Router: route patterns multi wildcards support.Axel Duch1-39/+5
2020-05-28Added "rootfs" feature.Tiago Natel de Moura1-0/+18
2020-05-14Router: decode uri and args.Axel Duch1-2/+115
2020-05-14PHP: implemented "targets" option.Valentin Bartenev1-23/+179
This allows to specify multiple subsequent targets inside PHP applications. For example: { "listeners": { "*:80": { "pass": "routes" } }, "routes": [ { "match": { "uri": "/info" }, "action": { "pass": "applications/my_app/phpinfo" } }, { "match": { "uri": "/hello" }, "action": { "pass": "applications/my_app/hello" } }, { "action": { "pass": "applications/my_app/rest" } } ], "applications": { "my_app": { "type": "php", "targets": { "phpinfo": { "script": "phpinfo.php", "root": "/www/data/admin", }, "hello": { "script": "hello.php", "root": "/www/data/test", }, "rest": { "root": "/www/data/example.com", "index": "index.php" }, } } } }
2020-05-14Configuration: URI encoding in the "pass" option.Valentin Bartenev1-33/+27
This is useful to escape "/" in path fragments. For example, in order to reference the application named "foo/bar": { "pass": "applications/foo%2Fbar" }
2020-03-30Rational number support in upstream server weight.Igor Sysoev1-7/+7
2020-03-30Configuration: support for rational numbers.Valentin Bartenev1-7/+7
2020-03-21Implemented "location" option for "return" action.Valentin Bartenev1-0/+5
This allows to specify redirects: { "action": { "return": 301, "location": "https://www.example.com/" } }
2020-03-27Implemented "return" action.Valentin Bartenev1-4/+34
The "return" action can be used to immediately generate a simple HTTP response with an arbitrary status: { "action": { "return": 404 } } This is especially useful for denying access to specific resources.
2020-03-12Using disk file to store large request body.Max Romanov1-0/+10
This closes #386 on GitHub.
2020-03-06Round robin upstream added.Igor Sysoev1-0/+130
2020-03-03Added a "fallback" option to be used with the "share" action.Valentin Bartenev1-0/+5
It allows proceeding to another action if a file isn't available. An example: { "share": "/data/www/", "fallback": { "pass": "applications/php" } } In the example above, an attempt is made first to serve a request with a file from the "/data/www/" directory. If there's no such file, the request is passed to the "php" application. Fallback actions may be nested: { "share": "/data/www/", "fallback": { "share": "/data/cache/", "fallback": { "proxy": "http://127.0.0.1:9000" } } }
2020-03-03Improved validation of the "action" object.Valentin Bartenev1-16/+41
Now it enforces the mutual exclusivity of "pass", "proxy", and "share" options.
2019-12-24Router: introducing routing on listener address.Axel Duch1-0/+5
2019-12-24Router: introducing routing on client address.Axel Duch1-0/+68
2019-12-24Adding "limits/shm" configuration validation and parsing.Max Romanov1-0/+5
2019-11-14Initial proxy support.Igor Sysoev1-4/+37
2019-10-10Style fixes.Igor Sysoev1-10/+9
2019-10-09Configuration: added check for mandatory options of "action".Valentin Bartenev1-2/+33
2019-09-19Basic support for serving static files.Valentin Bartenev1-0/+129
2019-09-19Initial applications isolation support using Linux namespaces.Tiago de Bem Natel de Moura1-67/+236
2019-08-20Introducing websocket support in router and libunit.Max Romanov1-0/+25
2019-07-24Added routing based on request scheme.Axel Duch1-0/+29
Scheme matches exact string “http” or “https”.
2019-05-30Added routing based on header fields.Igor Sysoev1-2/+66
2019-04-12Controller: rejecting double wildcards.Valentin Bartenev1-1/+6
2019-04-10Added support for wildcards in the middle of match patterns.Igor Sysoev1-3/+24
2019-03-22Style fixing.Max Romanov1-0/+1
This closes #233 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
2019-02-28Introducing Java Servlet Container beta.Max Romanov1-0/+71
2019-02-27Controller: added "routes" configuration.Valentin Bartenev1-0/+186
2019-02-27Controller: added "pass" configuration option.Valentin Bartenev1-0/+62