Home
last modified time | relevance | path

Searched hist:16 (Results 101 – 125 of 377) sorted by path

12345678910>>...16

/unit/src/
H A Dnxt_conf.cdiff 2139:99d792169ffb Thu Jun 16 01:00:00 UTC 2022 Andrew Clayton <andrew@digital-domain.net> Constified numerous function parameters.

As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler about our intentions and the compiler will tell us when we
deviate from them.

[0]: https://cppcheck.sourceforge.io/
diff 1439:32578e837322 Mon Mar 30 16:37:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Configuration: support for rational numbers.
diff 1425:e3cf8d512e53 Wed Mar 25 16:14:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Configuration: fixed comments parsing.

Unclosed multi-line comments and "/" at the end of JSON shouldn't be allowed.
diff 1167:a49ee872e83d Mon Sep 16 17:17:00 UTC 2019 Valentin Bartenev <vbart@nginx.com> Configuration: added ability to access object members with slashes.

Now URI encoding can be used to escape "/" in the request path:

GET /config/listeners/unix:%2Fpath%2Fto%2Fsocket/
diff 962:441ac71b793a Tue Feb 26 16:48:00 UTC 2019 Igor Sysoev <igor@sysoev.ru> Introduced nxt_conf_array_qsort().
diff 961:94b4c5bb66e3 Tue Feb 26 16:48:00 UTC 2019 Igor Sysoev <igor@sysoev.ru> Introduced nxt_conf_array_elements_count().
diff 214:3dda93d5b3cf Wed Aug 16 12:45:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Introduced nxt_conf_get_array_element().
diff 213:df7c06c7f26d Wed Aug 16 12:45:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Object mapping interface extended with more string types.
diff 208:7d1017bd0f6c Fri Aug 11 16:54:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Controller: more HTTP headers and detailed JSON parsing errors.
diff 207:1145c84e08ac Fri Aug 11 15:13:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Fixed parsing of JSON encoded UTF-16 surrogate pairs.
H A Dnxt_conf.hdiff 2139:99d792169ffb Thu Jun 16 01:00:00 UTC 2022 Andrew Clayton <andrew@digital-domain.net> Constified numerous function parameters.

As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler about our intentions and the compiler will tell us when we
deviate from them.

[0]: https://cppcheck.sourceforge.io/
diff 1439:32578e837322 Mon Mar 30 16:37:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Configuration: support for rational numbers.
diff 962:441ac71b793a Tue Feb 26 16:48:00 UTC 2019 Igor Sysoev <igor@sysoev.ru> Introduced nxt_conf_array_qsort().
diff 961:94b4c5bb66e3 Tue Feb 26 16:48:00 UTC 2019 Igor Sysoev <igor@sysoev.ru> Introduced nxt_conf_array_elements_count().
diff 357:b80698152fcd Tue Oct 10 16:46:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Basic validation errors.
diff 214:3dda93d5b3cf Wed Aug 16 12:45:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Introduced nxt_conf_get_array_element().
diff 213:df7c06c7f26d Wed Aug 16 12:45:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Object mapping interface extended with more string types.
diff 208:7d1017bd0f6c Fri Aug 11 16:54:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Controller: more HTTP headers and detailed JSON parsing errors.
diff 111:cfdcff16aa43 Thu Jun 29 16:26:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Added nxt_msec_t element to nxt_conf_map_object().
diff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_conf_validation.cdiff 2437:8973f763920b Sat Mar 18 16:32:00 UTC 2023 Andrew Clayton <a.clayton@nginx.com> Allow to remove the version string in HTTP responses.

Normally Unit responds to HTTP requests by including a header like

Server: Unit/1.30.0

however it can sometimes be beneficial to withhold the version
information and in this case just respond with

Server: Unit

This patch adds a new "settings.http" boolean option called
server_version, which defaults to true, in which case the full version
information is sent. However this can be set to false, e.g

"settings": {
"http": {
"server_version": false
}
},

in which case Unit responds without the version information as the
latter example above shows.

Link: <https://www.ietf.org/rfc/rfc9110.html#section-10.2.4>
Closes: <https://github.com/nginx/unit/issues/158>
Reviewed-by: Alejandro Colomar <alx@nginx.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
diff 2345:5c9cb7e205d3 Mon Jan 30 03:16:00 UTC 2023 Zhidao HONG <z.hong@f5.com> NJS: adding the missing vm destruction.

This commit fixed the njs memory leak happened in the config validation, updating and http requests.
diff 2318:6f198d76ee62 Mon Jan 30 03:16:00 UTC 2023 Zhidao HONG <z.hong@f5.com> NJS: adding the missing vm destruction.

This commit fixed the njs memory leak happened in the config validation, updating and http requests.
diff 2262:0bca3af03c75 Mon Oct 24 16:14:00 UTC 2022 Andrew Clayton <a.clayton@nginx.com> Isolation: wired up cgroup support to the config system.

This hooks the cgroup support up to the config system so it can actually
be used.

To make use of this in unit a new "cgroup" section has been added to the
isolation configuration.

e.g

"applications": {
"python": {
"type": "python",
"processes": 5,
"path": "/opt/unit/unit-cgroup-test/",
"module": "app",

"isolation": {
"cgroup": {
"path": "app/python"
}
}
}
}

Now there are two ways to specify the path, relative, like the above
(without a leading '/') and absolute (with a leading '/').

In the above case the "python" application is placed into its own cgroup
under CGROUP_ROOT/<main unit process cgroup>/app/python. Whereas if you
specified say

"path": "/unit/app/python"

Then the python application would be placed under
CGROUP_ROOT/unit/app/python

The first option allows you to easily take advantage of any resource
limits that have already been configured for unit.

With the second method (absolute pathname) if you know of an already
existing cgroup where you'd like to place it, you can, e.g

"path": "/system.slice/unit/python"

Where system.slice has already been created by systemd and may already
have some overall system limits applied which would also apply to unit.
Limits apply down the hierarchy and lower groups can't exceed the
previous group limits.

So what does this actually look like? Lets take the unit-calculator
application[0] and have each of its applications placed into their own
cgroup. If we give each application a new section like

"isolation": {
"cgroup": {
"path": "/unit/unit-calculator/add"
}
}

changing the path for each one, we can visualise the result with the
systemd-cgls command, e.g

│ └─session-5.scope (#4561)
│ ├─ 6667 sshd: andrew [priv]
│ ├─ 6684 sshd: andrew@pts/0
│ ├─ 6685 -bash
│ ├─ 12632 unit: main v1.28.0 [/opt/unit/sbin/unitd --control 127.0.0.1:808>
│ ├─ 12634 unit: controller
│ ├─ 12635 unit: router
│ ├─ 13550 systemd-cgls
│ └─ 13551 less
├─unit (#4759)
│ └─unit-calculator (#5037)
│ ├─subtract (#5069)
│ │ ├─ 12650 unit: "subtract" prototype
│ │ └─ 12651 unit: "subtract" application
│ ├─multiply (#5085)
│ │ ├─ 12653 unit: "multiply" prototype
│ │ └─ 12654 unit: "multiply" application
│ ├─divide (#5101)
│ │ ├─ 12671 unit: "divide" prototype
│ │ └─ 12672 node divide.js
│ ├─sqroot (#5117)
│ │ ├─ 12679 unit: "sqroot" prototype
│ │ └─ 12680 /home/andrew/src/unit-calculator/sqroot/sqroot
│ └─add (#5053)
│ ├─ 12648 unit: "add" prototype
│ └─ 12649 unit: "add" application

We used an absolute path so the cgroups will be created relative to the
main cgroupfs mount, e.g /sys/fs/cgroup

We can see that the main unit processes are in the same cgroup as the
shell from where they were started, by default child process are placed
into the same cgroup as the parent.

Then we can see that each application has been placed into its own
cgroup under /sys/fs/cgroup

Taking another example of a simple 5 process python application, with

"isolation": {
"cgroup": {
"path": "app/python"
}
}

Here we have specified a relative path and thus the python application
will be placed below the existing cgroup that contains the main unit
process. E.g

│ │ │ ├─app-glib-cinnamon\x2dcustom\x2dlauncher\x2d3-43951.scope (#90951)
│ │ │ │ ├─ 988 unit: main v1.28.0 [/opt/unit/sbin/unitd --no-daemon]
│ │ │ │ ├─ 990 unit: controller
│ │ │ │ ├─ 991 unit: router
│ │ │ │ ├─ 43951 xterm -bg rgb:20/20/20 -fg white -fa DejaVu Sans Mono
│ │ │ │ ├─ 43956 bash
│ │ │ │ ├─ 58828 sudo -i
│ │ │ │ ├─ 58831 -bash
│ │ │ │ └─app (#107351)
│ │ │ │ └─python (#107367)
│ │ │ │ ├─ 992 unit: "python" prototype
│ │ │ │ ├─ 993 unit: "python" application
│ │ │ │ ├─ 994 unit: "python" application
│ │ │ │ ├─ 995 unit: "python" application
│ │ │ │ ├─ 996 unit: "python" application
│ │ │ │ └─ 997 unit: "python" application

[0]: <https://github.com/lcrilly/unit-calculator>

Reviewed-by: Alejandro Colomar <alx@nginx.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
diff 2247:baa6b9879267 Sun Nov 20 15:16:00 UTC 2022 Zhidao HONG <z.hong@f5.com> Basic njs support.
diff 2078:0996dd223cdd Sat Dec 18 23:58:00 UTC 2021 Alejandro Colomar <alx.manpages@gmail.com> Fixed indentation.

Some lines (incorrectly) had an indentation of 3 or 5, or 7 or 9,
or 11 or 13, or 15 or 17 spaces instead of 4, 8, 12, or 16. Fix them.

Found with:

$ find src -type f | xargs grep -n '^ [^ ]';
$ find src -type f | xargs grep -n '^ [^ *]';
$ find src -type f | xargs grep -n '^ [^ ]';
$ find src -type f | xargs grep -n '^ [^ *]';
$ find src -type f | xargs grep -n '^ [^ +]';
$ find src -type f | xargs grep -n '^ [^ *+]';
$ find src -type f | xargs grep -n '^ [^ +]';
$ find src -type f | xargs grep -n '^ [^ *+]';
diff 1955:e834792ed4e3 Tue Sep 14 16:35:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Fixing build with glibc 2.34.

Explicitly using the sysconf() call to obtain the minimum thread stack size
instead of the PTHREAD_STACK_MIN macro.

This closes #576 PR on GitHub.
diff 1936:953434450ea9 Thu Aug 12 08:23:00 UTC 2021 Oisin Canty <o.canty@f5.com> Router: client IP address replacement.

This commit introduces the replacement of the client address based on the value
of a specified HTTP header. This is intended for use when Unit is placed
behind a reverse proxy like nginx or a CDN.

You must specify the source addresses of the trusted proxies. This can be
accomplished with any valid IP pattern supported by Unit's match block:

["10.0.0.1", "10.4.0.0/16", "!192.168.1.1"]

The feature is configured per listener.

The client address replacement functionality only operates when there is a
source IP match and the specified header is present. Typically this would be
an 'X-Forwarded-For' header.

{
"listeners": {
"127.0.0.1:8080": {
"client_ip": {
"header": "X-Forwarded-For",
"source": [
"10.0.0.0/8"
]
},
"pass": "applications/my_app"
},
}
}

If a request occurs and Unit receives a header like below:

"X-Forwarded-For: 84.123.23.23"

By default, Unit trusts the last rightmost IP in the header, so REMOTE_ADDR
will be set to 84.123.23.23 if the connection originated from 10.0.0.0/8.

If Unit runs behind consecutive reverse proxies and receives a header similar
to the following:

"X-Forwarded-For: 84.123.23.23, 10.0.0.254"

You will need to enable "recursive" checking, which walks the header from
last address to first and chooses the first non-trusted address it finds.

{
"listeners": {
"127.0.0.1:8080": {
"client_ip": {
"header": "X-Forwarded-For",
"source": [
"10.0.0.0/8"
]
"recursive": true,
},
"pass": "applications/my_app"
},
}
}

If a connection from 10.0.0.0/8 occurs, the chain is walked. Here, 10.0.0.254
is also a trusted address so the client address will be replaced with
84.123.23.23.

If all IP addresses in the header are trusted, the client address is set to
the first address in the header:

If 10.0.0.0/8 is trusted and "X-Forwarded-For: 10.0.0.3, 10.0.0.2, 10.0.0.1",
the client address will be replaced with 10.0.0.3.
diff 1883:b075f32408a1 Wed May 26 16:48:00 UTC 2021 Oisin Canty <o.canty@f5.com> Static: handled unknown MIME types when MIME-filtering active.
diff 1708:4463c1fc26fd Mon Nov 16 17:56:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Isolation: added option to disable "procfs" mount.

Now users can disable the default procfs mount point
in the rootfs.

{
"isolation": {
"automount": {
"procfs": false
}
}
}
H A Dnxt_conn.cdiff 654:b6ca49c1da1b Fri Apr 20 16:46:00 UTC 2018 Igor Sysoev <igor@sysoev.ru> Fixed alerts about freeing non-freeable memory on connection close.

The nxt_conn_t object is allocated by nxt_zget() and should not be freed.
diff 88:c6879c7b5bdf Fri Jun 23 16:20:00 UTC 2017 Max Romanov <max.romanov@nginx.com> Added basic HTTP request processing in router.

- request to connection mapping in engine;
- requests queue in connection;
- engine port creation;
- connected ports hash for each process;
- engine port data messages processing (app responses);
diff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_conn.hdiff 337:854a1a440616 Wed Sep 27 16:22:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Event engine memory cache for nxt_sockaddr_t.

Introducing event engine memory cache and using the cache for
nxt_sockaddr_t structures.
diff 93:8c66fdbc526b Mon Jun 26 16:58:00 UTC 2017 Max Romanov <max.romanov@nginx.com> Build on Solaris 11 fixed.
diff 88:c6879c7b5bdf Fri Jun 23 16:20:00 UTC 2017 Max Romanov <max.romanov@nginx.com> Added basic HTTP request processing in router.

- request to connection mapping in engine;
- requests queue in connection;
- engine port creation;
- connected ports hash for each process;
- engine port data messages processing (app responses);
diff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_conn_accept.cdiff 493:745222d540a2 Wed Jan 24 12:16:00 UTC 2018 Sergey Kandaurov <pluknet@nginx.com> Using size_t for the field width type of the "%*s" specifier.
diff 338:2c6135a99c27 Wed Sep 27 16:43:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Fixed building by modern GCC.
diff 337:854a1a440616 Wed Sep 27 16:22:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Event engine memory cache for nxt_sockaddr_t.

Introducing event engine memory cache and using the cache for
nxt_sockaddr_t structures.
diff 312:c156aea91063 Thu Sep 14 15:16:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Fixed textual socket name lengths and Unix domain sockaddr length.
diff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_conn_connect.cdiff 494:7c83ddcc1c42 Wed Jan 24 12:16:00 UTC 2018 Sergey Kandaurov <pluknet@nginx.com> Fixed formatting in nxt_sprintf() and logging.
diff 493:745222d540a2 Wed Jan 24 12:16:00 UTC 2018 Sergey Kandaurov <pluknet@nginx.com> Using size_t for the field width type of the "%*s" specifier.
H A Dnxt_conn_proxy.cdiff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_conn_read.cdiff 836:ecd3c5bbf7d8 Tue Nov 13 16:04:00 UTC 2018 Igor Sysoev <igor@sysoev.ru> Checking error states in I/O handlers.
H A Dnxt_conn_write.cdiff 1577:604db78b62f9 Sun Aug 16 21:28:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Supporting platforms without sendfile() implementation.

This is a quick and dirty sendfile() replacement.

This closes #452 PR on GitHub.
diff 1576:304b53232bc9 Sun Aug 16 21:28:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Style: changing preprocessor directives.

Using #if directives instead of #ifdef the same way as in other places.
diff 494:7c83ddcc1c42 Wed Jan 24 12:16:00 UTC 2018 Sergey Kandaurov <pluknet@nginx.com> Fixed formatting in nxt_sprintf() and logging.
H A Dnxt_controller.cdiff 1926:6e85d6c0b8bb Thu Jul 29 16:50:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Application restart introduced.

When processing a restart request, the router sends a QUIT message to all
existing processes of the application. Then, a new shared application port is
created to ensure that new requests won't be handled by the old processes of
the application.
diff 1488:6976d36be926 Mon Mar 09 16:28:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Refactor of process management.

The process abstraction has changed to:

setup(task, process)
start(task, process_data)
prefork(task, process, mp)

The prefork() occurs in the main process right before fork.

The file src/nxt_main_process.c is completely free of process
specific logic.

The creation of a process now supports a PROCESS_CREATED state. The
The setup() function of each process can set its state to either
created or ready. If created, a MSG_PROCESS_CREATED is sent to main
process, where external setup can be done (required for rootfs under
container).

The core processes (discovery, controller and router) doesn't need
external setup, then they all proceeds to their start() function
straight away.

In the case of applications, the load of the module happens at the
process setup() time and The module's init() function has changed
to be the start() of the process.

The module API has changed to:

setup(task, process, conf)
start(task, data)

As a direct benefit of the PROCESS_CREATED message, the clone(2) of
processes using pid namespaces now doesn't need to create a pipe
to make the child block until parent setup uid/gid mappings nor it
needs to receive the child pid.
diff 1459:358b957ca294 Thu Apr 16 14:09:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Using malloc/free for the http fields hash.

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().
diff 1167:a49ee872e83d Mon Sep 16 17:17:00 UTC 2019 Valentin Bartenev <vbart@nginx.com> Configuration: added ability to access object members with slashes.

Now URI encoding can be used to escape "/" in the request path:

GET /config/listeners/unix:%2Fpath%2Fto%2Fsocket/
diff 357:b80698152fcd Tue Oct 10 16:46:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Basic validation errors.
diff 337:854a1a440616 Wed Sep 27 16:22:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Event engine memory cache for nxt_sockaddr_t.

Introducing event engine memory cache and using the cache for
nxt_sockaddr_t structures.
diff 312:c156aea91063 Thu Sep 14 15:16:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Fixed textual socket name lengths and Unix domain sockaddr length.
diff 208:7d1017bd0f6c Fri Aug 11 16:54:00 UTC 2017 Valentin Bartenev <vbart@nginx.com> Controller: more HTTP headers and detailed JSON parsing errors.
diff 103:88fc973fd7a2 Wed Jun 28 12:16:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Setting listen socket fields lost in changeset 10688b89aa16.
diff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_credential.cdiff 1306:3604d05e48be Fri Dec 06 16:52:00 UTC 2019 Tiago Natel <t.nateldemoura@f5.com> Isolation: allowed the use of credentials with unpriv userns.

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.
H A Dnxt_credential.hdiff 1306:3604d05e48be Fri Dec 06 16:52:00 UTC 2019 Tiago Natel <t.nateldemoura@f5.com> Isolation: allowed the use of credentials with unpriv userns.

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.
H A Dnxt_cyassl.cdiff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_epoll_engine.cdiff 312:c156aea91063 Thu Sep 14 15:16:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Fixed textual socket name lengths and Unix domain sockaddr length.
H A Dnxt_errno.cdiff 10:a8e68ed06863 Wed Feb 01 16:20:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> nxt_str_t changes.
H A Dnxt_errno.hdiff 1439:32578e837322 Mon Mar 30 16:37:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Configuration: support for rational numbers.
H A Dnxt_event_conn_job_sendfile.cdiff 1:fdc027c56872 Mon Jan 23 16:56:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Introducing tasks.
H A Dnxt_event_engine.cdiff 494:7c83ddcc1c42 Wed Jan 24 12:16:00 UTC 2018 Sergey Kandaurov <pluknet@nginx.com> Fixed formatting in nxt_sprintf() and logging.
diff 337:854a1a440616 Wed Sep 27 16:22:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Event engine memory cache for nxt_sockaddr_t.

Introducing event engine memory cache and using the cache for
nxt_sockaddr_t structures.
diff 88:c6879c7b5bdf Fri Jun 23 16:20:00 UTC 2017 Max Romanov <max.romanov@nginx.com> Added basic HTTP request processing in router.

- request to connection mapping in engine;
- requests queue in connection;
- engine port creation;
- connected ports hash for each process;
- engine port data messages processing (app responses);
diff 1:fdc027c56872 Mon Jan 23 16:56:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Introducing tasks.
H A Dnxt_event_engine.hdiff 337:854a1a440616 Wed Sep 27 16:22:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Event engine memory cache for nxt_sockaddr_t.

Introducing event engine memory cache and using the cache for
nxt_sockaddr_t structures.
diff 88:c6879c7b5bdf Fri Jun 23 16:20:00 UTC 2017 Max Romanov <max.romanov@nginx.com> Added basic HTTP request processing in router.

- request to connection mapping in engine;
- requests queue in connection;
- engine port creation;
- connected ports hash for each process;
- engine port data messages processing (app responses);
diff 1:fdc027c56872 Mon Jan 23 16:56:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Introducing tasks.
H A Dnxt_external.cdiff 1543:42f27153db91 Tue Aug 11 16:19:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Libunit refactoring: port management.

- Changed the port management callbacks to notifications, which e. g. avoids
the need to call the libunit function
- Added context and library instance reference counts for a safer resource
release
- Added the router main port initialization
diff 1488:6976d36be926 Mon Mar 09 16:28:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Refactor of process management.

The process abstraction has changed to:

setup(task, process)
start(task, process_data)
prefork(task, process, mp)

The prefork() occurs in the main process right before fork.

The file src/nxt_main_process.c is completely free of process
specific logic.

The creation of a process now supports a PROCESS_CREATED state. The
The setup() function of each process can set its state to either
created or ready. If created, a MSG_PROCESS_CREATED is sent to main
process, where external setup can be done (required for rootfs under
container).

The core processes (discovery, controller and router) doesn't need
external setup, then they all proceeds to their start() function
straight away.

In the case of applications, the load of the module happens at the
process setup() time and The module's init() function has changed
to be the start() of the process.

The module API has changed to:

setup(task, process, conf)
start(task, data)

As a direct benefit of the PROCESS_CREATED message, the clone(2) of
processes using pid namespaces now doesn't need to create a pipe
to make the child block until parent setup uid/gid mappings nor it
needs to receive the child pid.
H A Dnxt_fd_event.cdiff 65:10688b89aa16 Tue Jun 20 16:49:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Using new memory pool implementation.
H A Dnxt_fiber.cdiff 1:fdc027c56872 Mon Jan 23 16:56:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Introducing tasks.
H A Dnxt_fiber.hdiff 1:fdc027c56872 Mon Jan 23 16:56:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Introducing tasks.
H A Dnxt_file.cdiff 494:7c83ddcc1c42 Wed Jan 24 12:16:00 UTC 2018 Sergey Kandaurov <pluknet@nginx.com> Fixed formatting in nxt_sprintf() and logging.

12345678910>>...16