summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_parse.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2019-09-17HTTP parser: fixed parsing of target after literal space character.Valentin Bartenev1-2/+18
In theory, all space characters in request target must be encoded; however, some clients may violate the specification. For the sake of interoperability, Unit supports unencoded space characters. Previously, if there was a space character before the extension or arguments parts, those parts weren't recognized. Also, quoted symbols and complex target weren't detected after a space character.
2019-09-16HTTP parser: removed unused "plus_in_target" flag.Valentin Bartenev1-22/+1
2019-09-16HTTP parser: removed unused "exten_start" and "args_start" fields.Valentin Bartenev1-29/+29
2019-09-16Configuration: added ability to access object members with slashes.Valentin Bartenev1-4/+26
Now URI encoding can be used to escape "/" in the request path: GET /config/listeners/unix:%2Fpath%2Fto%2Fsocket/
2019-08-16Improving response header fields processing.Max Romanov1-19/+4
Fields are filtered one by one before being added to fields list. This avoids adding and then skipping connection-specific fields.
2019-05-30Added routing based on header fields.Igor Sysoev1-4/+0
2019-03-11Style.Andrey Zelenkov1-1/+1
2018-07-03HTTP parser: relaxed checking of fields values.Valentin Bartenev1-2/+1
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-06-25Removed '\r' and '\n' artifact macros.Igor Sysoev1-1/+1
2018-04-10HTTP parser: saving partial method.Valentin Bartenev1-0/+4
This is useful for log purposes.
2018-04-10HTTP parser: saving unsupported version.Valentin Bartenev1-0/+1
This is useful for log purposes.
2018-04-10HTTP parser: correct "target" for partial or invalid request line.Valentin Bartenev1-0/+4
2018-04-05Style.Valentin Bartenev1-2/+2
2018-04-04Style: capitalized letters in hexadecimal literals.Valentin Bartenev1-13/+13
2018-03-15HTTP parser: excluding leading and trailing tabs from field values.Valentin Bartenev1-2/+5
As required by RFC 7230.
2018-03-15HTTP parser: allowing tabs in field values as per RFC 7230.Valentin Bartenev1-13/+21
2018-03-15HTTP parser: restricting allowed characters in fields values.Valentin Bartenev1-1/+2
According to RFC 7230 only printable 7-bit ASCII characters are allowed in field values.
2018-03-15HTTP parser: fixed parsing of field values ending with space.Valentin Bartenev1-8/+10
This closes #82 issue on GitHub.
2018-01-25HTTP parser: simplified nxt_http_parse_field_value().Valentin Bartenev1-15/+11
There's no need in loop after 4ac474b68658. Found by Coverity (CID 259713).
2018-01-24HTTP parser: restricting control chars in header fields values.Valentin Bartenev1-3/+1
This also fixes an infinite loop here (found with honggfuzz).
2018-01-15Checking for major HTTP version.Valentin Bartenev1-13/+23
2018-01-15Improved HTTP version representation.Valentin Bartenev1-14/+10
2018-01-15HTTP parser: improved error reporting.Valentin Bartenev1-18/+18
2018-01-09HTTP parser: allowing underscore in header field names.Valentin Bartenev1-1/+1
2017-12-27HTTP parser: introduced nxt_http_parse_fields().Valentin Bartenev1-0/+17
2017-12-26HTTP parser: fixed memory overflow in the collisions test.Valentin Bartenev1-0/+1
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-25HTTP parser: reworked header fields handling.Valentin Bartenev1-286/+259
2017-12-08HTTP parser: improved detection of corrupted request line.Valentin Bartenev1-1/+43
2017-12-08HTTP parser: slightly improved readability of code.Valentin Bartenev1-103/+101
As suggested by Igor Sysoev.
2017-07-05Complex target parser copied from NGINX.Max Romanov1-1/+336
nxt_app_request_header_t fields renamed: - 'path' renamed to 'target'. - 'path_no_query' renamed to 'path' and contains parsed value.
2017-06-27Applied nxt_pointer_to() and nxt_value_at() where possible.Valentin Bartenev1-1/+1
2017-06-20HTTP parser: reduced memory consumption of header fields list.Valentin Bartenev1-59/+77
2017-06-20Using new memory pool implementation.Igor Sysoev1-4/+3
2017-06-13HTTP parser: decoupled header fields processing.Valentin Bartenev1-157/+170
2017-06-09HTTP parser: fixed handling header fields with missing colon.Valentin Bartenev1-1/+3
2017-05-31HTTP parser: changed style of a comment.Valentin Bartenev1-4/+4
As requested by Igor.
2017-05-10Added missing "fall through" comments to make GCC 7 happy.Valentin Bartenev1-0/+3
2017-04-25HTTP parser: fixed minimum length optimization in headers hash.Valentin Bartenev1-4/+7
2017-03-08More optimizations of HTTP parser.Valentin Bartenev1-103/+63
SSE 4.2 code removed, since loop unrolling gives better results.
2017-03-01HTTP parser.Valentin Bartenev1-0/+889
2017-03-01Removed legacy HTTP parser.Valentin Bartenev1-595/+0
2017-01-17Initial version.Igor Sysoev1-0/+595