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
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
Valentin Bartenev
3fb140d6d2
HTTP parser: improved error reporting.
2018-01-15 20:49:59 +03:00
Valentin Bartenev
e8aada94de
HTTP parser: allowing underscore in header field names.
2018-01-09 16:50:47 +03:00
Valentin Bartenev
45d08d5145
HTTP parser: introduced nxt_http_parse_fields().
2017-12-27 15:45:23 +03:00
Valentin Bartenev
95a9cb94d5
HTTP parser: fixed memory overflow in the collisions test.
...
The level hash uses the NULL value as the indicator of a free entry in a bucket.
So, inserting a NULL value breaks the hash and can lead to a bucket overflow.
In case of the collision counter, the value wasn't initialized, since it's not
needed for the purpose of checking collisions. As a result, it might contain
any garbage from the stack and in some rare cases the value was NULL.
Now the value is initilized.
2017-12-26 17:18:57 +03:00
Valentin Bartenev
8830d73261
HTTP parser: reworked header fields handling.
2017-12-25 17:04:22 +03:00
Valentin Bartenev
67d72d46f7
HTTP parser: improved detection of corrupted request line.
2017-12-08 19:18:00 +03:00
Valentin Bartenev
20d720dfc5
HTTP parser: slightly improved readability of code.
...
As suggested by Igor Sysoev.
2017-12-08 19:18:00 +03:00
Max Romanov
f3107f3896
Complex target parser copied from NGINX.
...
nxt_app_request_header_t fields renamed:
- 'path' renamed to 'target'.
- 'path_no_query' renamed to 'path' and contains parsed value.
2017-07-05 13:31:45 +03:00
Valentin Bartenev
dfd3cc8c0e
Applied nxt_pointer_to() and nxt_value_at() where possible.
2017-06-27 17:27:18 +03:00
Valentin Bartenev
accb489492
HTTP parser: reduced memory consumption of header fields list.
2017-06-20 22:32:13 +03:00
Igor Sysoev
f888a5310c
Using new memory pool implementation.
2017-06-20 19:49:17 +03:00
Valentin Bartenev
db6642f374
HTTP parser: decoupled header fields processing.
2017-06-13 20:11:29 +03:00
Valentin Bartenev
f6e7c2b6a6
HTTP parser: fixed handling header fields with missing colon.
2017-06-09 21:49:51 +03:00
Valentin Bartenev
dee819daab
HTTP parser: changed style of a comment.
...
As requested by Igor.
2017-05-31 14:35:33 +03:00
Valentin Bartenev
ed38d86abb
Added missing "fall through" comments to make GCC 7 happy.
2017-05-10 19:19:14 +03:00
Valentin Bartenev
558d1f8687
HTTP parser: fixed minimum length optimization in headers hash.
2017-04-25 16:57:14 +03:00
Valentin Bartenev
5745e48264
More optimizations of HTTP parser.
...
SSE 4.2 code removed, since loop unrolling gives better results.
2017-03-08 00:38:52 +03:00
Valentin Bartenev
4df646a258
HTTP parser.
2017-03-01 15:29:18 +03:00
Valentin Bartenev
fde4d18e3a
Removed legacy HTTP parser.
2017-03-01 15:17:55 +03:00
Igor Sysoev
16cbf3c076
Initial version.
2017-01-17 20:00:00 +03:00