mirror of
				https://github.com/openresty/openresty.git
				synced 2024-10-13 00:29:41 +00:00 
			
		
		
		
	added patches for nginx 1.0.11.
This commit is contained in:
		
							
								
								
									
										117
									
								
								patches/nginx-1.0.11-allow_request_body_updating.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								patches/nginx-1.0.11-allow_request_body_updating.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,117 @@ | ||||
| diff -ur nginx-1.0.11/src/http/ngx_http_request_body.c nginx-1.0.11-patched/src/http/ngx_http_request_body.c | ||||
| --- nginx-1.0.11/src/http/ngx_http_request_body.c	2011-09-30 22:36:19.000000000 +0800 | ||||
| +++ nginx-1.0.11-patched/src/http/ngx_http_request_body.c	2011-10-21 21:54:08.460350482 +0800 | ||||
| @@ -38,7 +38,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; | ||||
|      } | ||||
| @@ -440,7 +440,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; | ||||
|      } | ||||
|   | ||||
| @@ -456,20 +456,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; | ||||
|          } | ||||
|      } | ||||
| @@ -568,7 +570,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; | ||||
|          } | ||||
| @@ -577,9 +579,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); | ||||
|   | ||||
| @@ -596,7 +598,7 @@ | ||||
|              return NGX_OK; | ||||
|          } | ||||
|   | ||||
| -        r->headers_in.content_length_n -= n; | ||||
| +        r->content_length_n -= n; | ||||
|      } | ||||
|  } | ||||
|   | ||||
| Only in nginx-1.0.11-patched/src/http: ngx_http_request_body.c~ | ||||
| diff -ur nginx-1.0.11/src/http/ngx_http_request.c nginx-1.0.11-patched/src/http/ngx_http_request.c | ||||
| --- nginx-1.0.11/src/http/ngx_http_request.c	2011-09-30 22:36:19.000000000 +0800 | ||||
| +++ nginx-1.0.11-patched/src/http/ngx_http_request.c	2011-10-21 19:06:38.404350692 +0800 | ||||
| @@ -286,6 +286,8 @@ | ||||
|   | ||||
|          r->pipeline = hc->pipeline; | ||||
|   | ||||
| +        r->content_length_n = -1; | ||||
| + | ||||
|          if (hc->nbusy) { | ||||
|              r->header_in = hc->busy[0]; | ||||
|          } | ||||
| @@ -297,6 +299,8 @@ | ||||
|              return; | ||||
|          } | ||||
|   | ||||
| +        r->content_length_n = -1; | ||||
| + | ||||
|          hc->request = r; | ||||
|      } | ||||
|   | ||||
| Only in nginx-1.0.11-patched/src/http: ngx_http_request.c~ | ||||
| diff -ur nginx-1.0.11/src/http/ngx_http_request.h nginx-1.0.11-patched/src/http/ngx_http_request.h | ||||
| --- nginx-1.0.11/src/http/ngx_http_request.h	2011-08-29 18:39:23.000000000 +0800 | ||||
| +++ nginx-1.0.11-patched/src/http/ngx_http_request.h	2011-10-21 17:26:13.203807584 +0800 | ||||
| @@ -366,6 +366,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.0.11-patched/src/http: ngx_http_request.h~ | ||||
| Only in nginx-1.0.11-patched/src/http: tags | ||||
		Reference in New Issue
	
	Block a user