<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src/perl, branch 1.25.0</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Perl: request processing in multiple threads.</title>
<updated>2020-11-05T13:10:59+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-11-05T13:10:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=d321d454f9304b083d62280d0621f282a74047ee'/>
<id>d321d454f9304b083d62280d0621f282a74047ee</id>
<content type='text'>
This closes #486 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This closes #486 issue on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Isolation: fixed build when features aren't detected.</title>
<updated>2020-06-23T11:11:27+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2020-06-23T11:11:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=f8ba5d6c0093090e81819481e523af5fd27ab1e3'/>
<id>f8ba5d6c0093090e81819481e523af5fd27ab1e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added "rootfs" feature.</title>
<updated>2020-05-28T13:57:41+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2020-05-28T13:57:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=e2b53e16c60ba1e3bbbe59172c184e97f889326b'/>
<id>e2b53e16c60ba1e3bbbe59172c184e97f889326b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor of process management.</title>
<updated>2020-03-09T16:28:25+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2020-03-09T16:28:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=e9e5ddd5a5d9ce99768833137eac2551a710becf'/>
<id>e9e5ddd5a5d9ce99768833137eac2551a710becf</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Attributing libunit logging function for arguments validation.</title>
<updated>2020-03-30T11:08:20+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-03-30T11:08:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=82b899b1365431951afc1da9b2b30065ac98fc94'/>
<id>82b899b1365431951afc1da9b2b30065ac98fc94</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adding "limits/shm" configuration validation and parsing.</title>
<updated>2019-12-24T15:04:09+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2019-12-24T15:04:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=64f649f9903e226421869376bc72a8513581d7d0'/>
<id>64f649f9903e226421869376bc72a8513581d7d0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Perl: propagated compile options from perl build.</title>
<updated>2019-07-17T18:17:30+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2019-07-17T18:17:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=242dc363ced8d244ff296e1c3c8f802b4857fd35'/>
<id>242dc363ced8d244ff296e1c3c8f802b4857fd35</id>
<content type='text'>
Some Perl compile options affects ABI and not using them while compiling
our module resulted in non-working build.

Notably on 32-bit Debian 10, Perl is built with -D_FILE_OFFSET_BITS=64
and our module after being compiled without this option caused segmentation
faults in unexpected places.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some Perl compile options affects ABI and not using them while compiling
our module resulted in non-working build.

Notably on 32-bit Debian 10, Perl is built with -D_FILE_OFFSET_BITS=64
and our module after being compiled without this option caused segmentation
faults in unexpected places.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adjusting request schema value according to connection tls state.</title>
<updated>2019-03-21T10:55:57+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2019-03-21T10:55:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=452ce0789e8e8f1ac98cc0ed7efce03656a3d616'/>
<id>452ce0789e8e8f1ac98cc0ed7efce03656a3d616</id>
<content type='text'>
This closes #223 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This closes #223 issue on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Perl: added implementation delayed response and streaming body.</title>
<updated>2019-03-01T13:50:25+00:00</updated>
<author>
<name>Alexander Borisov</name>
<email>alexander.borisov@nginx.com</email>
</author>
<published>2019-03-01T13:50:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=3b2c1d0eaaf8252242d2a164ad768a985e8ded5c'/>
<id>3b2c1d0eaaf8252242d2a164ad768a985e8ded5c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Made QUERY_STRING mandatory.</title>
<updated>2019-02-28T17:20:41+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2019-02-28T17:20:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=a5dd0f8aa9b81921ff28c486a39fd46607dbdbd9'/>
<id>a5dd0f8aa9b81921ff28c486a39fd46607dbdbd9</id>
<content type='text'>
According to CGI/1.1 RFC 3875:

   The server MUST set this variable; if the Script-URI does not include a
   query component, the QUERY_STRING MUST be defined as an empty string ("").

Python's PEP 333(3) allows omitting it in WSGI interface; PHP docs force no
requirements; PSGI and Rack specifications require it even if empty.

When nginx proxies requests over FastCGI, it always provides QUERY_STRING.
and some PHP apps have been observed to fail if it is missing (see issue
#201 on GitHub).

A drawback of this change (besides a small overhead) is that there will be
no easy way to tell a missing query string from an empty one (i.e. requests
with or without the "?" character); yet, it's negligible compared to the
possible benefits of wider application compatibility.

This closes #226 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to CGI/1.1 RFC 3875:

   The server MUST set this variable; if the Script-URI does not include a
   query component, the QUERY_STRING MUST be defined as an empty string ("").

Python's PEP 333(3) allows omitting it in WSGI interface; PHP docs force no
requirements; PSGI and Rack specifications require it even if empty.

When nginx proxies requests over FastCGI, it always provides QUERY_STRING.
and some PHP apps have been observed to fail if it is missing (see issue
#201 on GitHub).

A drawback of this change (besides a small overhead) is that there will be
no easy way to tell a missing query string from an empty one (i.e. requests
with or without the "?" character); yet, it's negligible compared to the
possible benefits of wider application compatibility.

This closes #226 issue on GitHub.
</pre>
</div>
</content>
</entry>
</feed>
