summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-12-12 21:11:21 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-12-12 21:11:21 +0000
commit0687ed071b02967d8b0079cb54c8c041a616ebab (patch)
tree70a5f55678c452cbc384e55c8c978ea5970b665f
parent3b8cfd03a809939adab5a2daa2efd3d322a575db (diff)
downloadnginx-0687ed071b02967d8b0079cb54c8c041a616ebab.tar.gz
r1678, r1679 merge:
*) copy protocol value when large request line is copied, this fixes error "fastcgi: the request record is too big" *) log how big fastcgi record
-rw-r--r--src/http/modules/ngx_http_fastcgi_module.c2
-rw-r--r--src/http/ngx_http_request.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c
index fb2578bf3..df8054466 100644
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -551,7 +551,7 @@ ngx_http_fastcgi_create_request(ngx_http_request_t *r)
if (len > 65535) {
ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
- "fastcgi: the request record is too big");
+ "fastcgi request record is too big: %uz", len);
return NGX_ERROR;
}
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 96963a0ab..e5ed14935 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1151,6 +1151,10 @@ ngx_http_alloc_large_header_buffer(ngx_http_request_t *r,
r->args_start = new + (r->args_start - old);
}
+ if (r->http_protocol.data) {
+ r->http_protocol.data = new + (r->http_protocol.data - old);
+ }
+
} else {
r->header_name_start = new;
r->header_name_end = new + (r->header_name_end - old);