Latest update - 7355

This commit is contained in:
2018-09-22 01:04:12 +09:00
parent 208765973a
commit 1134c4cd6e
3 changed files with 41 additions and 37 deletions
+1 -9
View File
@@ -180,15 +180,7 @@ ngx_http_rewrite_handler(ngx_http_request_t *r)
code(e);
}
if (e->status < NGX_HTTP_BAD_REQUEST) {
return e->status;
}
if (r->err_status == 0) {
return e->status;
}
return r->err_status;
return e->status;
}
+26 -24
View File
@@ -962,7 +962,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
n = ngx_http_read_request_header(r);
if (n == NGX_AGAIN || n == NGX_ERROR) {
return;
break;
}
}
@@ -987,7 +987,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
}
if (ngx_http_process_request_uri(r) != NGX_OK) {
return;
break;
}
if (r->schema_end) {
@@ -1006,16 +1006,16 @@ ngx_http_process_request_line(ngx_event_t *rev)
ngx_log_error(NGX_LOG_INFO, c->log, 0,
"client sent invalid host in request line");
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
return;
break;
}
if (rc == NGX_ERROR) {
ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
break;
}
if (ngx_http_set_virtual_server(r, &host) == NGX_ERROR) {
return;
break;
}
r->headers_in.server = host;
@@ -1027,11 +1027,11 @@ ngx_http_process_request_line(ngx_event_t *rev)
&& ngx_http_set_virtual_server(r, &r->headers_in.server)
== NGX_ERROR)
{
return;
break;
}
ngx_http_process_request(r);
return;
break;
}
@@ -1040,7 +1040,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
!= NGX_OK)
{
ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
break;
}
c->log->action = "reading client request headers";
@@ -1048,7 +1048,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
rev->handler = ngx_http_process_request_headers;
ngx_http_process_request_headers(rev);
return;
break;
}
if (rc != NGX_AGAIN) {
@@ -1065,7 +1065,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
(r->http_connection->ssl && clcf->strict_sni && clcf->strict_sni_header) ? ngx_http_terminate_request(r, 0) : ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
}
return;
break;
}
/* NGX_AGAIN: a request line parsing is still incomplete */
@@ -1076,7 +1076,7 @@ ngx_http_process_request_line(ngx_event_t *rev)
if (rv == NGX_ERROR) {
ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
break;
}
if (rv == NGX_DECLINED) {
@@ -1086,10 +1086,12 @@ ngx_http_process_request_line(ngx_event_t *rev)
ngx_log_error(NGX_LOG_INFO, c->log, 0,
"client sent too long URI");
ngx_http_finalize_request(r, NGX_HTTP_REQUEST_URI_TOO_LARGE);
return;
break;
}
}
}
ngx_http_run_posted_requests(c);
}
@@ -1251,7 +1253,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
if (rv == NGX_ERROR) {
ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
break;
}
if (rv == NGX_DECLINED) {
@@ -1264,7 +1266,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
"client sent too large request");
ngx_http_finalize_request(r,
NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
return;
break;
}
len = r->header_in->end - p;
@@ -1279,14 +1281,14 @@ ngx_http_process_request_headers(ngx_event_t *rev)
ngx_http_finalize_request(r,
NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
return;
break;
}
}
n = ngx_http_read_request_header(r);
if (n == NGX_AGAIN || n == NGX_ERROR) {
return;
break;
}
}
@@ -1316,7 +1318,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
h = ngx_list_push(&r->headers_in.headers);
if (h == NULL) {
ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
break;
}
h->hash = r->header_hash;
@@ -1332,7 +1334,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
h->lowcase_key = ngx_pnalloc(r->pool, h->key.len);
if (h->lowcase_key == NULL) {
ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
break;
}
if (h->key.len == r->lowcase_index) {
@@ -1346,7 +1348,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
h->lowcase_key, h->key.len);
if (hh && hh->handler(r, h, hh->offset) != NGX_OK) {
return;
break;
}
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
@@ -1370,12 +1372,12 @@ ngx_http_process_request_headers(ngx_event_t *rev)
rc = ngx_http_process_request_header(r);
if (rc != NGX_OK) {
return;
break;
}
ngx_http_process_request(r);
return;
break;
}
if (rc == NGX_AGAIN) {
@@ -1391,8 +1393,10 @@ ngx_http_process_request_headers(ngx_event_t *rev)
"client sent invalid header line");
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
return;
break;
}
ngx_http_run_posted_requests(c);
}
@@ -1954,8 +1958,6 @@ ngx_http_process_request(ngx_http_request_t *r)
r->read_event_handler = ngx_http_block_reading;
ngx_http_handler(r);
ngx_http_run_posted_requests(c);
}
+14 -4
View File
@@ -2683,11 +2683,13 @@ error:
if (rc == NGX_ABORT) {
/* header handler has already finalized request */
ngx_http_run_posted_requests(fc);
return NULL;
}
if (rc == NGX_DECLINED) {
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
ngx_http_run_posted_requests(fc);
return NULL;
}
@@ -3752,18 +3754,22 @@ ngx_http_v2_construct_cookie_header(ngx_http_request_t *r)
static void
ngx_http_v2_run_request(ngx_http_request_t *r)
{
ngx_connection_t *fc;
fc = r->connection;
if (ngx_http_v2_construct_request_line(r) != NGX_OK) {
return;
goto failed;
}
if (ngx_http_v2_construct_cookie_header(r) != NGX_OK) {
return;
goto failed;
}
r->http_state = NGX_HTTP_PROCESS_REQUEST_STATE;
if (ngx_http_process_request_header(r) != NGX_OK) {
return;
goto failed;
}
if (r->headers_in.content_length_n > 0 && r->stream->in_closed) {
@@ -3773,7 +3779,7 @@ ngx_http_v2_run_request(ngx_http_request_t *r)
r->stream->skip_data = 1;
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
return;
goto failed;
}
if (r->headers_in.content_length_n == -1 && !r->stream->in_closed) {
@@ -3781,6 +3787,10 @@ ngx_http_v2_run_request(ngx_http_request_t *r)
}
ngx_http_process_request(r);
failed:
ngx_http_run_posted_requests(fc);
}