upgraded ngx_lua to 0.3.1rc23; released ngx_openresty 1.0.8.25; added patches for nginx 0.8.54.

This commit is contained in:
agentzh (章亦春) 2011-10-27 20:22:31 +08:00
parent 1161f83de3
commit 3e2b93c19d
5 changed files with 200 additions and 2 deletions

View File

@ -0,0 +1,117 @@
diff -ur nginx-0.8.54/src/http/ngx_http_request_body.c nginx-0.8.54-patched/src/http/ngx_http_request_body.c
--- nginx-0.8.54/src/http/ngx_http_request_body.c 2011-09-30 22:36:19.000000000 +0800
+++ nginx-0.8.54-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-0.8.54-patched/src/http: ngx_http_request_body.c~
diff -ur nginx-0.8.54/src/http/ngx_http_request.c nginx-0.8.54-patched/src/http/ngx_http_request.c
--- nginx-0.8.54/src/http/ngx_http_request.c 2011-09-30 22:36:19.000000000 +0800
+++ nginx-0.8.54-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-0.8.54-patched/src/http: ngx_http_request.c~
diff -ur nginx-0.8.54/src/http/ngx_http_request.h nginx-0.8.54-patched/src/http/ngx_http_request.h
--- nginx-0.8.54/src/http/ngx_http_request.h 2011-08-29 18:39:23.000000000 +0800
+++ nginx-0.8.54-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-0.8.54-patched/src/http: ngx_http_request.h~
Only in nginx-0.8.54-patched/src/http: tags

View File

@ -0,0 +1,12 @@
--- nginx-0.8.54/src/http/ngx_http_core_module.c 2011-09-27 19:14:02.000000000 +0800
+++ nginx-0.8.54-patched/src/http/ngx_http_core_module.c 2011-10-13 15:02:24.414550532 +0800
@@ -2542,6 +2542,9 @@
r->content_handler = NULL;
r->loc_conf = (*clcfp)->loc_conf;
+ /* clear the modules contexts */
+ ngx_memzero(r->ctx, sizeof(void *) * ngx_http_max_module);
+
ngx_http_update_location_config(r);
cmcf = ngx_http_get_module_main_conf(r, ngx_http_core_module);

View File

@ -0,0 +1,69 @@
--- nginx-0.8.54/src/http/ngx_http_variables.c 2011-05-30 05:36:17.000000000 -0700
+++ nginx-0.8.54-patched/src/http/ngx_http_variables.c 2011-09-30 10:59:05.000000000 -0700
@@ -648,7 +648,17 @@
a = (ngx_array_t *) ((char *) r + data);
- n = a->nelts;
+ h = a->elts;
+ n = 0;
+
+ for (i = 0; i < a->nelts; i++) {
+
+ if (h[i]->hash == 0) {
+ continue;
+ }
+
+ n++;
+ }
if (n == 0) {
v->not_found = 1;
@@ -659,9 +669,7 @@
v->no_cacheable = 0;
v->not_found = 0;
- h = a->elts;
-
- if (n == 1) {
+ if (n == 1 && a->nelts == 1) {
v->len = (*h)->value.len;
v->data = (*h)->value.data;
@@ -670,7 +678,12 @@
len = - (ssize_t) (sizeof("; ") - 1);
- for (i = 0; i < n; i++) {
+ for (i = 0; i < a->nelts; i++) {
+
+ if (h[i]->hash == 0) {
+ continue;
+ }
+
len += h[i]->value.len + sizeof("; ") - 1;
}
@@ -683,6 +696,11 @@
v->data = p;
for (i = 0; /* void */ ; i++) {
+
+ if (h[i]->hash == 0) {
+ continue;
+ }
+
p = ngx_copy(p, h[i]->value.data, h[i]->value.len);
if (i == n - 1) {
@@ -738,6 +756,10 @@
i = 0;
}
+ if (header[i].hash == 0) {
+ continue;
+ }
+
for (n = 0; n + prefix < var->len && n < header[i].key.len; n++) {
ch = header[i].key.data[n];

View File

@ -105,7 +105,7 @@ mv chaoslawful-drizzle-nginx-module-* drizzle-nginx-module-$ver || exit 1
#################################
ver=0.3.1rc22
ver=0.3.1rc23
$root/util/get-tarball "http://github.com/chaoslawful/lua-nginx-module/tarball/v$ver" -O lua-nginx-module-$ver.tar.gz || exit 1
tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
mv chaoslawful-lua-nginx-module-* ngx_lua-$ver || exit 1

View File

@ -1,7 +1,7 @@
#!/bin/bash
main_ver=1.0.8
minor_ver=23
minor_ver=25
version=$main_ver.$minor_ver
echo $version