Valentin Bartenev
80217caa52
Generated Dockerfiles for Unit 1.4.
2018-09-20 18:19:14 +03:00
Valentin Bartenev
63ff7a341a
Added version 1.4 CHANGES.
2018-09-20 18:18:52 +03:00
Valentin Bartenev
510c2e15c5
Python: adjusted input.read(size) argument value interpretation.
...
Previously, passing 0 resulted in reading the whole body and all negative
values raised an exception.
Now the behaviour is in consistentance with io.RawIOBase.read() interface,
and passing 0 returns empty (byte) string, while -1 results in reading the
whole body.
2018-09-20 16:04:49 +03:00
Valentin Bartenev
a2eca97e89
Controller: addressing of array elements in requests.
2018-09-20 15:27:14 +03:00
Valentin Bartenev
8d844bc2aa
Controller: certificates storage interface.
2018-09-20 15:27:08 +03:00
Valentin Bartenev
2dfd8ffc2f
Deduplicated string value initializations.
2018-09-20 15:27:06 +03:00
Valentin Bartenev
353db6f361
Fixed more typos.
...
Thanks to 洪志道 (Hong Zhi Dao).
2018-09-18 16:28:24 +03:00
Valentin Bartenev
4bc7a23ecf
Fixed spelling in a comment.
...
This closes #161 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-09-10 14:55:15 +03:00
Valentin Bartenev
941616f893
Returning error for "make tests" when "--tests" wasn't configured.
2018-08-08 18:43:46 +03:00
Valentin Bartenev
4b67de4bbb
Removed implicit call of nxt_thread() in nxt_thread_tid().
...
Explicit is better than implicit © The Zen of Python.
The nxt_thread_tid(NULL) call was used only twice in the code
and such behaviour was specific to nxt_thread_tid() function.
2018-07-27 17:52:21 +03:00
Valentin Bartenev
de885e10cb
Fixed configure process with non-default locale.
...
Overriding LANG might not work, since it has less precedence than LC_* settings.
LC_ALL has the highest precedence.
This should resolve issue #121 on GitHub.
2018-07-23 19:21:33 +03:00
Valentin Bartenev
7bdbb2cf2a
Version bump.
2018-07-16 16:33:06 +03:00
Valentin Bartenev
92a7d9f0c6
Added tag 1.3 for changeset b3cf22b8a17e
2018-07-13 15:15:22 +03:00
Valentin Bartenev
604a904a47
Generated Dockerfiles for Unit 1.3.
2018-07-13 14:45:08 +03:00
Valentin Bartenev
a1bf265d52
Added version 1.3 CHANGES.
2018-07-13 14:45:08 +03:00
Valentin Bartenev
8fd32c9394
Removed unused "nxt_app_header_field_t" structure.
...
It's not used since 3b77edf46701.
2018-07-11 16:53:11 +03:00
Valentin Bartenev
1abdcfb2d8
Controller: added "settings" configuration object.
...
It has the following structure and default values:
{
"http": {
"header_read_timeout": 30,
"body_read_timeout": 30,
"send_timeout": 30,
"idle_timeout": 180,
"max_body_size": 8388608
}
}
2018-07-09 20:34:51 +03:00
Valentin Bartenev
5a05f569b7
Router: increased HTTP connection related limits.
2018-07-09 20:34:51 +03:00
Valentin Bartenev
7e3de003c7
PHP: fixed request body processing.
...
The implementation of module was based on the assumption that PHP reads request
body and headers in the particular order. For the POST request the body goes
before headers and vice versa for all other requests.
But as it appeared later, this order is unspecified and depends on many factors,
including the particular code of PHP application. Among other factors those
can affect ordering:
- presence of "Content-Type" header;
- "variables_order" php.ini setting;
- "enable_post_data_reading" php.ini setting;
- reading php://input by application;
and this list can be incomplete.
As a temporary workaround, request body now is always put before headers and it
is gracefully skipped whenever PHP wants to get headers.
This closes #144 issue on GitHub.
2018-07-05 16:43:45 +03:00
Valentin Bartenev
234deb51f4
PHP: fixed setting of individual configuration options.
...
The previous method changed PHP options only for the first request.
On the request completion the options were rolled back.
This closes #145 issue on GitHub.
2018-07-03 17:12:47 +03:00
Valentin Bartenev
11cecce114
HTTP parser: relaxed checking of fields values.
...
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-07-03 15:18:16 +03:00
Valentin Bartenev
0366bfad6d
Fixed error message about "spare" value.
2018-07-02 18:19:00 +03:00
Valentin Bartenev
145d895430
Controller: fixed handling of zero Content-Length.
2018-07-02 16:36:59 +03:00
Valentin Bartenev
42e1d8e3b2
Packages: tar building functionality moved into pkg/Makefile.
2018-06-27 18:30:49 +03:00
Valentin Bartenev
1a52d876f7
Introduced nxt_length() macro.
2018-06-25 16:51:47 +03:00
Valentin Bartenev
af31012815
More effective implementation of nxt_popcount().
...
This method requires as many iterations as there are set bits,
while the previous one has to shift up to the position of the
highest bit.
2018-06-21 16:40:02 +03:00
Valentin Bartenev
e96374bfa1
Version bump.
2018-06-13 15:42:42 +03:00
Valentin Bartenev
0f0fb35620
Added tag 1.2 for changeset fbe7f5a3867e
2018-06-07 17:48:45 +03:00
Valentin Bartenev
b1bdf309e2
Generated Dockerfiles for Unit 1.2.
2018-06-07 17:46:46 +03:00
Valentin Bartenev
9dd0fa87ad
Added version 1.2 CHANGES.
2018-06-07 16:43:37 +03:00
Valentin Bartenev
8f278a5fed
PHP: added setting of individual configuration options.
2018-06-07 16:17:32 +03:00
Valentin Bartenev
388390888b
PHP: added setting of php.ini configuration file path.
2018-06-07 16:17:31 +03:00
Valentin Bartenev
771dc2f55e
Exported functions for accessing configuration values.
2018-06-07 16:17:30 +03:00
Valentin Bartenev
ceeb301881
Go: specifying command line arguments to the executable.
...
This closes #110 issue on GitHub.
2018-06-06 16:53:35 +03:00
Valentin Bartenev
d7e6e2bd8c
Configuration of environment variables for application processes.
2018-05-28 20:55:23 +03:00
Valentin Bartenev
3e8dbfe5ff
Added SERVER_SOFTWARE request meta-variable.
2018-05-21 16:14:24 +03:00
Valentin Bartenev
10898568a3
Version bump.
2018-04-27 16:48:14 +03:00
Valentin Bartenev
4814fa7efe
Added tag 1.1 for changeset 3f710b55c226
2018-04-26 18:33:11 +03:00
Valentin Bartenev
472e9b2a24
Generated Dockerfiles for Unit 1.1.
2018-04-26 18:31:13 +03:00
Valentin Bartenev
62a89eed60
Added version 1.1 CHANGES.
2018-04-26 18:30:06 +03:00
Valentin Bartenev
d1b0f74550
Improved wording in CHANGES.
2018-04-26 16:47:55 +03:00
Valentin Bartenev
17160e9352
Python: added a missing slash in the path to "pyenv.cfg".
...
This closes #115 issue on GitHub.
2018-04-25 15:11:01 +03:00
Valentin Bartenev
749f7c0340
Support for PEP 405 virtual environments.
...
This closes #96 issue on GitHub.
2018-04-24 20:49:36 +03:00
Valentin Bartenev
5371891492
Fixed segfault when two modules have the same type and version.
...
The bug appeared in 217e48a3b091.
This closes #104 issue on GitHub.
2018-04-20 23:57:46 +03:00
Valentin Bartenev
a20830ff55
Router: fixed race condition while access log reopening.
...
In order to reopen access log, the router process creates a memory pool
and allocates a buffer to send RPC message for the main process.
Previously, the memory pool was destroyed when RPC response handler was
called. It appeared, that the buffer completion handler could be not
triggered by that time and still remained in a queue.
Now the memory pool is destroyed only after both events are happen.
2018-04-19 19:48:58 +03:00
Valentin Bartenev
b06a0c95d0
Removed duplicating socket address parsing function.
...
This also fixes #101 issue on GitHub. The function previously used to
parse IPv6 address of control socket was broken. Now the working function
is used instead.
2018-04-18 17:28:22 +03:00
Valentin Bartenev
54ccb32333
Added missing cleanup when nxt_port_socket_write() failed.
2018-04-18 17:28:04 +03:00
Valentin Bartenev
ab4f867996
Added missing checks if nxt_port_rpc_register_handler() failed.
...
This closes #97 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-04-17 21:13:43 +03:00
Valentin Bartenev
555141f798
Improved "unitd" command line help.
2018-04-13 20:07:02 +03:00
Valentin Bartenev
115949c50f
Version bump.
2018-04-13 19:10:15 +03:00
Valentin Bartenev
1c19c6f1ad
Added tag 1.0 for changeset 5870dd420309
2018-04-12 19:50:37 +03:00
Valentin Bartenev
8912dea621
Generated Dockerfiles for Unit 1.0.
2018-04-12 19:47:37 +03:00
Valentin Bartenev
32eb649e7c
Added version 1.0 CHANGES.
2018-04-12 19:47:33 +03:00
Valentin Bartenev
946cfa32a8
Version bump.
2018-04-12 19:39:25 +03:00
Valentin Bartenev
07b554c2b4
Configure scripts cleanup.
...
Thanks to 洪志道 (Hong Zhi Dao).
2018-04-11 18:29:48 +03:00
Valentin Bartenev
c610b35649
Controller: added "/config" prefix for the configuration object.
2018-04-11 18:23:58 +03:00
Valentin Bartenev
da61cfd98b
Access log reopening.
2018-04-11 18:23:58 +03:00
Valentin Bartenev
204c394721
Initial access log support.
2018-04-11 18:23:33 +03:00
Valentin Bartenev
dc75c83950
Fixed pipelined request processing, broken by 9e16499b63f0.
2018-04-11 12:49:58 +03:00
Valentin Bartenev
41317e37da
HTTP parser: saving partial method.
...
This is useful for log purposes.
2018-04-10 16:51:22 +03:00
Valentin Bartenev
8d697e8004
HTTP parser: saving unsupported version.
...
This is useful for log purposes.
2018-04-10 16:51:22 +03:00
Valentin Bartenev
b1b9c78362
HTTP parser: correct "target" for partial or invalid request line.
2018-04-10 16:51:22 +03:00
Valentin Bartenev
eb51264710
Processing of partially parsed HTTP header.
...
This is useful for log purposes.
2018-04-09 19:16:19 +03:00
Valentin Bartenev
96927e7d0c
Controller: fixed a memory leak when PUT operation failed.
...
Thanks to 洪志道 (Hong Zhi Dao).
2018-04-08 14:08:06 +03:00
Valentin Bartenev
c0a423aa74
Fixed NXT_INT64_T_HEXLEN.
...
This closes #89 issue on GitHub.
Thanks to hongzhidao.
2018-04-05 15:54:08 +03:00
Valentin Bartenev
d15b4ca906
Style.
2018-04-05 15:49:41 +03:00
Valentin Bartenev
0665896a55
Style: capitalized letters in hexadecimal literals.
2018-04-04 18:13:05 +03:00
Valentin Bartenev
f4cb476feb
Version bump.
2018-04-02 17:42:36 +03:00
Valentin Bartenev
9844ecd9ec
Added tag 0.7 for changeset d2fcec5b0fa3
2018-03-22 21:09:37 +03:00
Valentin Bartenev
157120bfd1
Generated Dockerfiles for Unit 0.7.
2018-03-22 21:07:06 +03:00
Valentin Bartenev
228d8518c7
Added version 0.7 CHANGES.
2018-03-22 21:07:06 +03:00
Valentin Bartenev
e254eecb77
PHP: fixed segfault on initialization.
...
PHP SAPI can call log handler while initializing. Particularly, that happens
if there's a problem in loading some extension specified in php.ini file.
On this stage server context is empty, so now nxt_thread_log_error() is used.
2018-03-16 18:19:48 +03:00
Valentin Bartenev
701a54c177
HTTP parser: excluding leading and trailing tabs from field values.
...
As required by RFC 7230.
2018-03-15 21:08:29 +03:00
Valentin Bartenev
0b628bfe48
HTTP parser: allowing tabs in field values as per RFC 7230.
2018-03-15 21:07:57 +03:00
Valentin Bartenev
3d2f85d9ca
HTTP parser: restricting allowed characters in fields values.
...
According to RFC 7230 only printable 7-bit ASCII characters are allowed
in field values.
2018-03-15 21:07:56 +03:00
Valentin Bartenev
5a003df1fe
HTTP parser: fixed parsing of field values ending with space.
...
This closes #82 issue on GitHub.
2018-03-15 20:52:39 +03:00
Valentin Bartenev
f81fa2a921
Python: safety checks for request processing context.
...
An application can store request related functions and mistakenly call them
outside of request processing. Previously this resulted in segmentation
fault due to unset nxt_python_run_ctx. Now an exception will be raised.
2018-03-15 17:11:13 +03:00
Valentin Bartenev
cf2767625f
Python: fixed crash if start_response() is called inside iteration.
...
The start_response() uses nxt_python_run_ctx, but it was unset right
after the application call.
2018-03-15 17:10:24 +03:00
Valentin Bartenev
bebc5845f8
Capitalization in the "Server" field.
2018-03-13 20:32:47 +03:00
Valentin Bartenev
912a49c609
Reduced number of critical log levels.
2018-03-05 17:32:50 +03:00
Valentin Bartenev
27b00629e1
Fixed race condition while discovering modules.
...
Previously, the discovery process might exit before the main process
received a list of available modules.
2018-02-14 16:33:35 +03:00
Valentin Bartenev
9646772a00
HTTP: the Date response header.
2018-02-12 16:58:40 +03:00
Valentin Bartenev
dc50773e51
Version bump.
2018-02-12 16:58:38 +03:00
Valentin Bartenev
582fd34f35
Added tag 0.6 for changeset 88831b81e384
2018-02-09 19:24:46 +03:00
Valentin Bartenev
87f0dce1f6
Generated Dockerfiles for Unit 0.6.
2018-02-09 19:07:55 +03:00
Valentin Bartenev
061343520d
Added version 0.6 CHANGES.
2018-02-09 19:07:55 +03:00
Valentin Bartenev
24d07cfdd2
Made nxt_assert() statements to be compiled only with debug.
2018-02-09 19:07:55 +03:00
Valentin Bartenev
fc496c19ac
Changed the default number of spare processes to 0.
2018-02-09 19:06:53 +03:00
Valentin Bartenev
9d683d37b1
Fixed starting of applications with specified version.
...
The "type" option can contain version number that need to be cut off before
calling nxt_app_parse_type().
The bug was introduced in 4979fe09d9cd.
2018-02-09 19:06:53 +03:00
Valentin Bartenev
c890f53d10
Version bump.
2018-02-09 19:06:53 +03:00
Valentin Bartenev
7daf2cbfef
Added tag 0.5 for changeset 1ba4d13d222b
2018-02-08 19:11:53 +03:00
Valentin Bartenev
01c6f149a6
Generated Dockerfiles for Unit 0.5.
2018-02-08 18:59:02 +03:00
Valentin Bartenev
40a360b640
Added version 0.5 CHANGES.
2018-02-08 18:42:51 +03:00
Valentin Bartenev
31f72401d9
Fixed reading of the rest of body, again.
...
The last attempt in ee5f278e8c81 wasn't enough.
2018-02-07 18:17:41 +03:00
Valentin Bartenev
7fe8f72364
HTTP parser: simplified nxt_http_parse_field_value().
...
There's no need in loop after 4ac474b68658.
Found by Coverity (CID 259713).
2018-01-25 10:31:22 +03:00
Valentin Bartenev
477e8177b7
HTTP parser: restricting control chars in header fields values.
...
This also fixes an infinite loop here (found with honggfuzz).
2018-01-24 15:02:56 +03:00
Valentin Bartenev
d1f29ed77e
Python: fixed the "wsgi.errors" environment variable name.
...
This closes issue #76 on GitHub.
2018-01-19 19:45:11 +03:00
Valentin Bartenev
01ec9a5dba
Ability to validate configuration options with multiple types.
2018-01-18 15:52:44 +03:00
Valentin Bartenev
0c38ff0e66
Checking for major HTTP version.
2018-01-15 20:50:20 +03:00
Valentin Bartenev
a073616fc3
Improved HTTP version representation.
2018-01-15 20:50:14 +03:00