HTTP parser: removed unused "exten" field.
This field was intended for MIME type lookup by file extension when serving static files, but this use case is too narrow; only a fraction of requests targets static content, and the URI presumably isn't rewritten. Moreover, current implementation uses the entire filename for MIME type lookup if the file has no extension. Instead of extracting filenames and extensions when parsing requests, it's easier to obtain them right before serving static content; this behavior is already implemented. Thus, we can drop excessive logic from parser.
This commit is contained in:
@@ -11,7 +11,6 @@
|
||||
typedef struct {
|
||||
nxt_str_t method;
|
||||
nxt_str_t target;
|
||||
nxt_str_t exten;
|
||||
nxt_str_t args;
|
||||
u_char version[8];
|
||||
|
||||
@@ -66,7 +65,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/"),
|
||||
nxt_null_string,
|
||||
nxt_null_string,
|
||||
"HTTP/1.0",
|
||||
0, 0, 0
|
||||
}}
|
||||
@@ -78,7 +76,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
{ .request_line = {
|
||||
nxt_string("XXX-METHOD"),
|
||||
nxt_string("/d.ir/fi+le.ext?key=val"),
|
||||
nxt_string("ext"),
|
||||
nxt_string("key=val"),
|
||||
"HTTP/1.2",
|
||||
0, 0, 0
|
||||
@@ -91,7 +88,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
{ .request_line = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/di.r/?"),
|
||||
nxt_null_string,
|
||||
nxt_string(""),
|
||||
"HTTP/1.0",
|
||||
0, 0, 0
|
||||
@@ -135,7 +131,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/."),
|
||||
nxt_null_string,
|
||||
nxt_null_string,
|
||||
"HTTP/1.0",
|
||||
1, 0, 0
|
||||
}}
|
||||
@@ -148,7 +143,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/#"),
|
||||
nxt_null_string,
|
||||
nxt_null_string,
|
||||
"HTTP/1.0",
|
||||
1, 0, 0
|
||||
}}
|
||||
@@ -160,7 +154,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
{ .request_line = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/?#"),
|
||||
nxt_null_string,
|
||||
nxt_string(""),
|
||||
"HTTP/1.0",
|
||||
1, 0, 0
|
||||
@@ -174,7 +167,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("//"),
|
||||
nxt_null_string,
|
||||
nxt_null_string,
|
||||
"HTTP/1.0",
|
||||
1, 0, 0
|
||||
}}
|
||||
@@ -187,7 +179,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/%20"),
|
||||
nxt_null_string,
|
||||
nxt_null_string,
|
||||
"HTTP/1.0",
|
||||
0, 1, 0
|
||||
}}
|
||||
@@ -200,7 +191,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/ a"),
|
||||
nxt_null_string,
|
||||
nxt_null_string,
|
||||
"HTTP/1.0",
|
||||
0, 0, 1
|
||||
}}
|
||||
@@ -212,7 +202,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
{ .request_line = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/na %20me.ext?args"),
|
||||
nxt_string("ext"),
|
||||
nxt_string("args"),
|
||||
"HTTP/1.0",
|
||||
0, 1, 1
|
||||
@@ -225,7 +214,6 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
|
||||
{ .request_line = {
|
||||
nxt_string("GET"),
|
||||
nxt_string("/ HTTP/1.0"),
|
||||
nxt_string("0"),
|
||||
nxt_null_string,
|
||||
"HTTP/1.1",
|
||||
0, 0, 1
|
||||
@@ -740,16 +728,6 @@ nxt_http_parse_test_request_line(nxt_http_request_parse_t *rp,
|
||||
return NXT_ERROR;
|
||||
}
|
||||
|
||||
if (rp->exten.start != test->exten.start
|
||||
&& !nxt_strstr_eq(&rp->exten, &test->exten))
|
||||
{
|
||||
nxt_log_alert(log, "http parse test case failed:\n"
|
||||
" - request:\n\"%V\"\n"
|
||||
" - exten: \"%V\" (expected: \"%V\")",
|
||||
request, &rp->exten, &test->exten);
|
||||
return NXT_ERROR;
|
||||
}
|
||||
|
||||
if (rp->args.start != test->args.start
|
||||
&& !nxt_strstr_eq(&rp->args, &test->args))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user