Skip to content

Commit

Permalink
added patches for nginx 1.3.4.
Browse files Browse the repository at this point in the history
  • Loading branch information
agentzh committed Aug 13, 2012
1 parent 52cf79e commit 5e4d755
Show file tree
Hide file tree
Showing 11 changed files with 1,944 additions and 8 deletions.
128 changes: 128 additions & 0 deletions patches/nginx-1.3.4-allow_request_body_updating.patch
@@ -0,0 +1,128 @@
diff '--exclude=*~' -ur nginx-1.3.4/src/http/ngx_http_core_module.c nginx-1.3.4-patched/src/http/ngx_http_core_module.c
--- nginx-1.3.4/src/http/ngx_http_core_module.c 2012-06-04 04:58:12.000000000 -0700
+++ nginx-1.3.4-patched/src/http/ngx_http_core_module.c 2012-07-21 12:09:17.468576485 -0700
@@ -2420,6 +2420,8 @@

sr->request_body = r->request_body;

+ sr->content_length_n = -1;
+
sr->method = NGX_HTTP_GET;
sr->http_version = r->http_version;

diff '--exclude=*~' -ur nginx-1.3.4/src/http/ngx_http_request_body.c nginx-1.3.4-patched/src/http/ngx_http_request_body.c
--- nginx-1.3.4/src/http/ngx_http_request_body.c 2012-04-12 12:35:41.000000000 -0700
+++ nginx-1.3.4-patched/src/http/ngx_http_request_body.c 2012-07-21 12:08:30.655376967 -0700
@@ -39,7 +39,7 @@

r->main->count++;

- if (r->request_body || r->discard_body) {
+ if (r->request_body || r->discard_body || r->content_length_n == 0) {
post_handler(r);
return NGX_OK;
}
@@ -441,7 +441,7 @@
ssize_t size;
ngx_event_t *rev;

- if (r != r->main || r->discard_body) {
+ if (r != r->main || r->discard_body || r->content_length_n == 0) {
return NGX_OK;
}

@@ -457,20 +457,22 @@
ngx_del_timer(rev);
}

- if (r->headers_in.content_length_n <= 0 || r->request_body) {
+ r->content_length_n = r->headers_in.content_length_n;
+
+ if (r->content_length_n <= 0 || r->request_body) {
return NGX_OK;
}

size = r->header_in->last - r->header_in->pos;

if (size) {
- if (r->headers_in.content_length_n > size) {
+ if (r->content_length_n > size) {
r->header_in->pos += size;
- r->headers_in.content_length_n -= size;
+ r->content_length_n -= size;

} else {
- r->header_in->pos += (size_t) r->headers_in.content_length_n;
- r->headers_in.content_length_n = 0;
+ r->header_in->pos += (size_t) r->content_length_n;
+ r->content_length_n = 0;
return NGX_OK;
}
}
@@ -569,7 +571,7 @@
"http read discarded body");

for ( ;; ) {
- if (r->headers_in.content_length_n == 0) {
+ if (r->content_length_n == 0) {
r->read_event_handler = ngx_http_block_reading;
return NGX_OK;
}
@@ -578,9 +580,9 @@
return NGX_AGAIN;
}

- size = (r->headers_in.content_length_n > NGX_HTTP_DISCARD_BUFFER_SIZE) ?
+ size = (r->content_length_n > NGX_HTTP_DISCARD_BUFFER_SIZE) ?
NGX_HTTP_DISCARD_BUFFER_SIZE:
- (size_t) r->headers_in.content_length_n;
+ (size_t) r->content_length_n;

n = r->connection->recv(r->connection, buffer, size);

@@ -597,7 +599,7 @@
return NGX_OK;
}

- r->headers_in.content_length_n -= n;
+ r->content_length_n -= n;
}
}

Only in nginx-1.3.4-patched/src/http: ngx_http_request_body.c.orig
diff '--exclude=*~' -ur nginx-1.3.4/src/http/ngx_http_request.c nginx-1.3.4-patched/src/http/ngx_http_request.c
--- nginx-1.3.4/src/http/ngx_http_request.c 2012-06-05 06:52:37.000000000 -0700
+++ nginx-1.3.4-patched/src/http/ngx_http_request.c 2012-07-21 12:08:30.656376973 -0700
@@ -287,6 +287,8 @@

r->pipeline = hc->pipeline;

+ r->content_length_n = -1;
+
if (hc->nbusy) {
r->header_in = hc->busy[0];
}
@@ -298,6 +300,8 @@
return;
}

+ r->content_length_n = -1;
+
hc->request = r;
}

Only in nginx-1.3.4-patched/src/http: ngx_http_request.c.orig
diff '--exclude=*~' -ur nginx-1.3.4/src/http/ngx_http_request.h nginx-1.3.4-patched/src/http/ngx_http_request.h
--- nginx-1.3.4/src/http/ngx_http_request.h 2012-02-28 06:54:23.000000000 -0800
+++ nginx-1.3.4-patched/src/http/ngx_http_request.h 2012-07-21 12:08:30.657376978 -0700
@@ -368,6 +368,9 @@
ngx_pool_t *pool;
ngx_buf_t *header_in;

+ off_t content_length_n;
+ /* for discarding request body */
+
ngx_http_headers_in_t headers_in;
ngx_http_headers_out_t headers_out;

Only in nginx-1.3.4-patched/src/http: ngx_http_request.h.orig

0 comments on commit 5e4d755

Please sign in to comment.