mirror of
https://github.com/openresty/openresty.git
synced 2024-10-13 00:29:41 +00:00
FreeBSD
clients
demo
misc
patches
lua-5.1.4-makefile_install_fix.patch
lua-5.1.5-disable_lua50_compat.patch
lua-5.1.5-makefile_install_fix.patch
lua_cjson-1.0.2-array_detection_fix.patch
luajit-2.0.0-2ad9834d.patch
nginx-0.8.54-allow_request_body_updating.patch
nginx-0.8.54-named_location_clear_mods_ctx.patch
nginx-0.8.54-no_Werror.patch
nginx-0.8.54-no_error_pages.patch
nginx-0.8.54-redirect_memcpy_overlap.patch
nginx-0.8.54-request_body_in_single_buf.patch
nginx-0.8.54-request_body_preread_fix.patch
nginx-0.8.54-server_header.patch
nginx-0.8.54-subrequest_loop.patch
nginx-0.8.54-variable_header_ignore_no_hash.patch
nginx-1.0.10-allow_request_body_updating.patch
nginx-1.0.10-epoll_check_stale_wev.patch
nginx-1.0.10-gzip_empty_flush_buf.patch
nginx-1.0.10-log_escape_non_ascii.patch
nginx-1.0.10-named_location_clear_mods_ctx.patch
nginx-1.0.10-no_Werror.patch
nginx-1.0.10-no_error_pages.patch
nginx-1.0.10-no_pool.patch
nginx-1.0.10-request_body_in_single_buf.patch
nginx-1.0.10-request_body_preread_fix.patch
nginx-1.0.10-server_header.patch
nginx-1.0.10-subrequest_loop.patch
nginx-1.0.10-variable_header_ignore_no_hash.patch
nginx-1.0.11-allow_request_body_updating.patch
nginx-1.0.11-epoll_check_stale_wev.patch
nginx-1.0.11-gzip_empty_flush_buf.patch
nginx-1.0.11-log_escape_non_ascii.patch
nginx-1.0.11-max_subrequests.patch
nginx-1.0.11-named_location_clear_mods_ctx.patch
nginx-1.0.11-no_Werror.patch
nginx-1.0.11-no_error_pages.patch
nginx-1.0.11-no_pool.patch
nginx-1.0.11-null_character_fixes.patch
nginx-1.0.11-request_body_in_single_buf.patch
nginx-1.0.11-request_body_preread_fix.patch
nginx-1.0.11-server_header.patch
nginx-1.0.11-subrequest_loop.patch
nginx-1.0.11-upstream_pipelining.patch
nginx-1.0.11-variable_header_ignore_no_hash.patch
nginx-1.0.12-allow_request_body_updating.patch
nginx-1.0.12-epoll_check_stale_wev.patch
nginx-1.0.12-gzip_empty_flush_buf.patch
nginx-1.0.12-log_escape_non_ascii.patch
nginx-1.0.12-max_subrequests.patch
nginx-1.0.12-named_location_clear_mods_ctx.patch
nginx-1.0.12-no_Werror.patch
nginx-1.0.12-no_error_pages.patch
nginx-1.0.12-no_pool.patch
nginx-1.0.12-request_body_in_single_buf.patch
nginx-1.0.12-request_body_preread_fix.patch
nginx-1.0.12-server_header.patch
nginx-1.0.12-subrequest_loop.patch
nginx-1.0.12-variable_header_ignore_no_hash.patch
nginx-1.0.14-allow_request_body_updating.patch
nginx-1.0.14-epoll_check_stale_wev.patch
nginx-1.0.14-gzip_empty_flush_buf.patch
nginx-1.0.14-log_escape_non_ascii.patch
nginx-1.0.14-max_subrequests.patch
nginx-1.0.14-named_location_clear_mods_ctx.patch
nginx-1.0.14-no_Werror.patch
nginx-1.0.14-no_error_pages.patch
nginx-1.0.14-no_pool.patch
nginx-1.0.14-null_character_fixes.patch
nginx-1.0.14-request_body_in_single_buf.patch
nginx-1.0.14-request_body_preread_fix.patch
nginx-1.0.14-server_header.patch
nginx-1.0.14-subrequest_loop.patch
nginx-1.0.14-upstream_pipelining.patch
nginx-1.0.14-variable_header_ignore_no_hash.patch
nginx-1.0.15-add_core_vars_polluting_globals.patch
nginx-1.0.15-allow_request_body_updating.patch
nginx-1.0.15-filter_finalize_hang.patch
nginx-1.0.15-gzip_empty_flush_buf.patch
nginx-1.0.15-log_escape_non_ascii.patch
nginx-1.0.15-max_subrequests.patch
nginx-1.0.15-named_location_clear_mods_ctx.patch
nginx-1.0.15-no_Werror.patch
nginx-1.0.15-no_error_pages.patch
nginx-1.0.15-no_pool.patch
nginx-1.0.15-null_character_fixes.patch
nginx-1.0.15-poll_del_event_at_exit.patch
nginx-1.0.15-request_body_in_single_buf.patch
nginx-1.0.15-request_body_preread_fix.patch
nginx-1.0.15-reset_wev_handler_in_named_locations.patch
nginx-1.0.15-resolver_debug_log_overflow.patch
nginx-1.0.15-server_header.patch
nginx-1.0.15-subrequest_loop.patch
nginx-1.0.15-upstream_pipelining.patch
nginx-1.0.15-variable_header_ignore_no_hash.patch
nginx-1.0.4-gcc46_fixes.patch
nginx-1.0.4-no_Werror.patch
nginx-1.0.4-no_error_pages.patch
nginx-1.0.4-no_pool.patch
nginx-1.0.4-request_body_in_single_buf.patch
nginx-1.0.4-request_body_preread_fix.patch
nginx-1.0.4-server_header.patch
nginx-1.0.4-subrequest_loop.patch
nginx-1.0.5-no_Werror.patch
nginx-1.0.5-no_error_pages.patch
nginx-1.0.5-no_pool.patch
nginx-1.0.5-request_body_in_single_buf.patch
nginx-1.0.5-request_body_preread_fix.patch
nginx-1.0.5-server_header.patch
nginx-1.0.5-subrequest_loop.patch
nginx-1.0.6-gzip_empty_flush_buf.patch
nginx-1.0.6-no_Werror.patch
nginx-1.0.6-no_error_pages.patch
nginx-1.0.6-no_pool.patch
nginx-1.0.6-request_body_in_single_buf.patch
nginx-1.0.6-request_body_preread_fix.patch
nginx-1.0.6-server_header.patch
nginx-1.0.6-subrequest_loop.patch
nginx-1.0.6-variable_header_ignore_no_hash.patch
nginx-1.0.8-allow_request_body_updating.patch
nginx-1.0.8-gzip_empty_flush_buf.patch
nginx-1.0.8-named_location_clear_mods_ctx.patch
nginx-1.0.8-no_Werror.patch
nginx-1.0.8-no_error_pages.patch
nginx-1.0.8-no_pool.patch
nginx-1.0.8-request_body_in_single_buf.patch
nginx-1.0.8-request_body_preread_fix.patch
nginx-1.0.8-server_header.patch
nginx-1.0.8-subrequest_loop.patch
nginx-1.0.8-variable_header_ignore_no_hash.patch
nginx-1.0.9-allow_request_body_updating.patch
nginx-1.0.9-epoll_check_stale_wev.patch
nginx-1.0.9-gzip_empty_flush_buf.patch
nginx-1.0.9-log_escape_non_ascii.patch
nginx-1.0.9-named_location_clear_mods_ctx.patch
nginx-1.0.9-no_Werror.patch
nginx-1.0.9-no_error_pages.patch
nginx-1.0.9-no_pool.patch
nginx-1.0.9-request_body_in_single_buf.patch
nginx-1.0.9-request_body_preread_fix.patch
nginx-1.0.9-server_header.patch
nginx-1.0.9-subrequest_loop.patch
nginx-1.0.9-variable_header_ignore_no_hash.patch
nginx-1.1.15-allow_request_body_updating.patch
nginx-1.1.15-gzip_empty_flush_buf.patch
nginx-1.1.15-log_escape_non_ascii.patch
nginx-1.1.15-named_location_clear_mods_ctx.patch
nginx-1.1.15-no_Werror.patch
nginx-1.1.15-no_error_pages.patch
nginx-1.1.15-no_pool.patch
nginx-1.1.15-server_header.patch
nginx-1.1.15-subrequest_loop.patch
nginx-1.1.2-no_error_pages.patch
nginx-1.1.4-variable_header_ignore_no_hash.patch
nginx-1.1.5-named_location_clear_mods_ctx.patch
nginx-1.2.1-add_core_vars_polluting_globals.patch
nginx-1.2.1-allow_request_body_updating.patch
nginx-1.2.1-dtrace.patch
nginx-1.2.1-location_if_inherits_proxy.patch
nginx-1.2.1-log_escape_non_ascii.patch
nginx-1.2.1-no_Werror.patch
nginx-1.2.1-no_error_pages.patch
nginx-1.2.1-no_pool.patch
nginx-1.2.1-poll_del_event_at_exit.patch
nginx-1.2.1-resolver_debug_log_overflow.patch
nginx-1.2.1-server_header.patch
nginx-1.2.1-upstream_pipelining.patch
nginx-1.2.3-allow_request_body_updating.patch
nginx-1.2.3-channel-uninit-params.patch
nginx-1.2.3-dtrace.patch
nginx-1.2.3-location_if_inherits_proxy.patch
nginx-1.2.3-log_escape_non_ascii.patch
nginx-1.2.3-no_Werror.patch
nginx-1.2.3-no_error_pages.patch
nginx-1.2.3-no_pool.patch
nginx-1.2.3-nonbuffered-upstream-truncation.patch
nginx-1.2.3-server_header.patch
nginx-1.2.3-upstream_pipelining.patch
nginx-1.2.4-allow_request_body_updating.patch
nginx-1.2.4-channel-uninit-params.patch
nginx-1.2.4-dtrace.patch
nginx-1.2.4-location_if_inherits_proxy.patch
nginx-1.2.4-log_escape_non_ascii.patch
nginx-1.2.4-no_Werror.patch
nginx-1.2.4-no_error_pages.patch
nginx-1.2.4-no_pool.patch
nginx-1.2.4-nonbuffered-upstream-truncation.patch
nginx-1.2.4-server_header.patch
nginx-1.2.4-slab_alloc_no_memory_as_info.patch
nginx-1.2.4-upstream_pipelining.patch
nginx-1.2.4-upstream_test_connect_kqueue.patch
nginx-1.2.5-allow_request_body_updating.patch
nginx-1.2.5-channel-uninit-params.patch
nginx-1.2.5-dtrace.patch
nginx-1.2.5-location_if_inherits_proxy.patch
nginx-1.2.5-log_escape_non_ascii.patch
nginx-1.2.5-no_Werror.patch
nginx-1.2.5-no_error_pages.patch
nginx-1.2.5-no_pool.patch
nginx-1.2.5-nonbuffered-upstream-truncation.patch
nginx-1.2.5-server_header.patch
nginx-1.2.5-slab_alloc_no_memory_as_info.patch
nginx-1.2.5-upstream_pipelining.patch
nginx-1.2.5-upstream_test_connect_kqueue.patch
nginx-1.2.6-channel-uninit-params.patch
nginx-1.2.6-dtrace.patch
nginx-1.2.6-location_if_inherits_proxy.patch
nginx-1.2.6-log_escape_non_ascii.patch
nginx-1.2.6-no_Werror.patch
nginx-1.2.6-no_error_pages.patch
nginx-1.2.6-no_pool.patch
nginx-1.2.6-nonbuffered-upstream-truncation.patch
nginx-1.2.6-resolver_wev_handler_segfault_with_poll.patch
nginx-1.2.6-server_header.patch
nginx-1.2.6-slab_alloc_no_memory_as_info.patch
nginx-1.2.6-upstream_pipelining.patch
nginx-1.2.7-channel-uninit-params.patch
nginx-1.2.7-dtrace.patch
nginx-1.2.7-location_if_inherits_proxy.patch
nginx-1.2.7-log_escape_non_ascii.patch
nginx-1.2.7-no_Werror.patch
nginx-1.2.7-no_error_pages.patch
nginx-1.2.7-no_pool.patch
nginx-1.2.7-run_posted_requests_in_resolver.patch
nginx-1.2.7-server_header.patch
nginx-1.2.7-slab_alloc_no_memory_as_info.patch
nginx-1.2.7-upstream_pipelining.patch
nginx-1.2.7-upstream_truncation.patch
nginx-1.2.8-channel-uninit-params.patch
nginx-1.2.8-dtrace.patch
nginx-1.2.8-location_if_inherits_proxy.patch
nginx-1.2.8-log_escape_non_ascii.patch
nginx-1.2.8-no_Werror.patch
nginx-1.2.8-no_error_pages.patch
nginx-1.2.8-no_pool.patch
nginx-1.2.8-server_header.patch
nginx-1.2.8-slab_alloc_no_memory_as_info.patch
nginx-1.2.8-upstream_pipelining.patch
nginx-1.2.8-upstream_truncation.patch
nginx-1.3.0-resolver_debug_log_overflow.patch
nginx-1.3.11-channel-uninit-params.patch
nginx-1.3.11-dtrace.patch
nginx-1.3.11-location_if_inherits_proxy.patch
nginx-1.3.11-log_escape_non_ascii.patch
nginx-1.3.11-no_Werror.patch
nginx-1.3.11-no_error_pages.patch
nginx-1.3.11-no_pool.patch
nginx-1.3.11-nonbuffered-upstream-truncation.patch
nginx-1.3.11-resolver_wev_handler_segfault_with_poll.patch
nginx-1.3.11-server_header.patch
nginx-1.3.11-slab_alloc_no_memory_as_info.patch
nginx-1.3.11-upstream_pipelining.patch
nginx-1.3.11-upstream_test_connect_kqueue.patch
nginx-1.3.4-allow_request_body_updating.patch
nginx-1.3.4-dtrace.patch
nginx-1.3.4-location_if_inherits_proxy.patch
nginx-1.3.4-log_escape_non_ascii.patch
nginx-1.3.4-no_Werror.patch
nginx-1.3.4-no_error_pages.patch
nginx-1.3.4-no_pool.patch
nginx-1.3.4-server_header.patch
nginx-1.3.4-upstream_pipelining.patch
nginx-1.3.6-allow_request_body_updating.patch
nginx-1.3.6-channel-uninit-params.patch
nginx-1.3.6-dtrace.patch
nginx-1.3.6-location_if_inherits_proxy.patch
nginx-1.3.6-log_escape_non_ascii.patch
nginx-1.3.6-no_Werror.patch
nginx-1.3.6-no_error_pages.patch
nginx-1.3.6-no_pool.patch
nginx-1.3.6-nonbuffered-upstream-truncation.patch
nginx-1.3.6-server_header.patch
nginx-1.3.6-upstream_pipelining.patch
nginx-1.3.7-allow_request_body_updating.patch
nginx-1.3.7-channel-uninit-params.patch
nginx-1.3.7-dtrace.patch
nginx-1.3.7-location_if_inherits_proxy.patch
nginx-1.3.7-log_escape_non_ascii.patch
nginx-1.3.7-no_Werror.patch
nginx-1.3.7-no_error_pages.patch
nginx-1.3.7-no_pool.patch
nginx-1.3.7-nonbuffered-upstream-truncation.patch
nginx-1.3.7-resolver_wev_handler_segfault_with_poll.patch
nginx-1.3.7-server_header.patch
nginx-1.3.7-slab_alloc_no_memory_as_info.patch
nginx-1.3.7-upstream_pipelining.patch
nginx-1.3.7-upstream_test_connect_kqueue.patch
ngx_http_redis-0.3.6-variables_in_redis_pass.patch
specs
t
util
.gitignore
Makefile
README
137 lines
4.3 KiB
Diff
137 lines
4.3 KiB
Diff
diff -ur nginx-1.2.5/src/http/ngx_http_core_module.c nginx-1.2.5-patched/src/http/ngx_http_core_module.c
|
|
--- nginx-1.2.5/src/http/ngx_http_core_module.c 2012-08-06 10:31:32.000000000 -0700
|
|
+++ nginx-1.2.5-patched/src/http/ngx_http_core_module.c 2012-08-30 11:37:42.388213974 -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 -ur nginx-1.2.5/src/http/ngx_http_request_body.c nginx-1.2.5-patched/src/http/ngx_http_request_body.c
|
|
--- nginx-1.2.5/src/http/ngx_http_request_body.c 2012-04-12 12:35:41.000000000 -0700
|
|
+++ nginx-1.2.5-patched/src/http/ngx_http_request_body.c 2012-08-30 11:37:42.388213974 -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;
|
|
}
|
|
}
|
|
|
|
diff -ur nginx-1.2.5/src/http/ngx_http_request.c nginx-1.2.5-patched/src/http/ngx_http_request.c
|
|
--- nginx-1.2.5/src/http/ngx_http_request.c 2012-08-06 10:36:30.000000000 -0700
|
|
+++ nginx-1.2.5-patched/src/http/ngx_http_request.c 2012-08-30 11:37:42.395213999 -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;
|
|
}
|
|
|
|
diff -ur nginx-1.2.5/src/http/ngx_http_request.h nginx-1.2.5-patched/src/http/ngx_http_request.h
|
|
--- nginx-1.2.5/src/http/ngx_http_request.h 2012-07-02 10:41:52.000000000 -0700
|
|
+++ nginx-1.2.5-patched/src/http/ngx_http_request.h 2012-08-30 11:39:37.085644830 -0700
|
|
@@ -9,6 +9,9 @@
|
|
#define _NGX_HTTP_REQUEST_H_INCLUDED_
|
|
|
|
|
|
+#define HAVE_ALLOW_REQUEST_BODY_UPDATING_PATCH
|
|
+
|
|
+
|
|
#define NGX_HTTP_MAX_URI_CHANGES 10
|
|
#define NGX_HTTP_MAX_SUBREQUESTS 200
|
|
|
|
@@ -375,6 +378,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.2.5-patched/src/http: ngx_http_request.h.orig
|