mirror of
https://github.com/openresty/openresty.git
synced 2024-10-13 00:29:41 +00:00
Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
64d7e61527 | |||
ed2f8de61a | |||
1d096c047e | |||
1bfc510257 | |||
9f0143b14f | |||
05ae54a092 | |||
09598a3e19 | |||
977c5b1d51 | |||
6063956a1a | |||
e91766c012 | |||
a2ed0a0403 | |||
8e57e2541b | |||
f5f2d672e7 | |||
49d9d9b778 | |||
13efb24106 | |||
3be0b7f0e1 | |||
5fb8647d23 | |||
e7053c9ca9 | |||
042e2fd27b | |||
1d909539a8 | |||
d54e2dcc69 |
13
patches/nginx-1.2.7-cve-2013-2070.patch
Normal file
13
patches/nginx-1.2.7-cve-2013-2070.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
--- src/http/modules/ngx_http_proxy_module.c
|
||||||
|
+++ src/http/modules/ngx_http_proxy_module.c
|
||||||
|
@@ -1865,6 +1865,10 @@ data:
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (ctx->size < 0 || ctx->length < 0) {
|
||||||
|
+ goto invalid;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
done:
|
@ -454,10 +454,10 @@ index efbc244..8d81aab 100644
|
|||||||
|
|
||||||
diff --git a/src/dtrace/nginx.stp b/src/dtrace/nginx.stp
|
diff --git a/src/dtrace/nginx.stp b/src/dtrace/nginx.stp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..8a5a54a
|
index 0000000..4c228bd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/dtrace/nginx.stp
|
+++ b/src/dtrace/nginx.stp
|
||||||
@@ -0,0 +1,278 @@
|
@@ -0,0 +1,288 @@
|
||||||
+/* tapset for nginx */
|
+/* tapset for nginx */
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
@ -598,6 +598,12 @@ index 0000000..8a5a54a
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
|
+function ngx_buf_last_in_chain(b)
|
||||||
|
+{
|
||||||
|
+ return @cast(b, "ngx_buf_t", "/home/agentzh/git/lua-nginx-module/work/nginx/sbin/nginx")->last_in_chain
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
+function ngx_buf_sync(b)
|
+function ngx_buf_sync(b)
|
||||||
+{
|
+{
|
||||||
+ return @cast(b, "ngx_buf_t", "/home/agentzh/git/lua-nginx-module/work/nginx/sbin/nginx")->sync
|
+ return @cast(b, "ngx_buf_t", "/home/agentzh/git/lua-nginx-module/work/nginx/sbin/nginx")->sync
|
||||||
@ -651,7 +657,11 @@ index 0000000..8a5a54a
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (ngx_buf_last_buf(buf)) {
|
+ if (ngx_buf_last_buf(buf)) {
|
||||||
+ out .= "<eof>"
|
+ out .= "<last_buf>"
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (ngx_buf_last_in_chain(buf)) {
|
||||||
|
+ out .= "<last_in_chain>"
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (ngx_buf_sync(buf)) {
|
+ if (ngx_buf_sync(buf)) {
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
--- nginx-1.2.7/src/http/ngx_http_upstream.c 2012-08-06 10:34:08.000000000 -0700
|
|
||||||
+++ nginx-1.2.7-patched/src/http/ngx_http_upstream.c 2012-09-09 21:58:04.727761891 -0700
|
|
||||||
@@ -2383,7 +2383,7 @@
|
|
||||||
|
|
||||||
if (c->read->timedout) {
|
|
||||||
ngx_connection_error(c, NGX_ETIMEDOUT, "upstream timed out");
|
|
||||||
- ngx_http_upstream_finalize_request(r, u, 0);
|
|
||||||
+ ngx_http_upstream_finalize_request(r, u, NGX_HTTP_GATEWAY_TIME_OUT);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2430,13 +2430,17 @@
|
|
||||||
if (u->busy_bufs == NULL) {
|
|
||||||
|
|
||||||
if (u->length == 0
|
|
||||||
- || upstream->read->eof
|
|
||||||
- || upstream->read->error)
|
|
||||||
+ || (upstream->read->eof && u->headers_in.content_length_n == -1))
|
|
||||||
{
|
|
||||||
ngx_http_upstream_finalize_request(r, u, 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (upstream->read->eof || upstream->read->error) {
|
|
||||||
+ ngx_http_upstream_finalize_request(r, u, NGX_HTTP_BAD_GATEWAY);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
b->pos = b->start;
|
|
||||||
b->last = b->start;
|
|
||||||
}
|
|
||||||
@@ -2710,7 +2714,16 @@
|
|
||||||
#if 0
|
|
||||||
ngx_http_busy_unlock(u->conf->busy_lock, &u->busy_lock);
|
|
||||||
#endif
|
|
||||||
- ngx_http_upstream_finalize_request(r, u, 0);
|
|
||||||
+
|
|
||||||
+ if (p->upstream_done
|
|
||||||
+ || (p->upstream_eof && u->headers_in.content_length_n == -1))
|
|
||||||
+ {
|
|
||||||
+ ngx_http_upstream_finalize_request(r, u, 0);
|
|
||||||
+
|
|
||||||
+ } else {
|
|
||||||
+ ngx_http_upstream_finalize_request(r, u, NGX_HTTP_BAD_GATEWAY);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3073,6 +3086,13 @@
|
|
||||||
&& rc != NGX_HTTP_REQUEST_TIME_OUT
|
|
||||||
&& (rc == NGX_ERROR || rc >= NGX_HTTP_SPECIAL_RESPONSE))
|
|
||||||
{
|
|
||||||
+ if (rc == NGX_ERROR) {
|
|
||||||
+ r->headers_out.status = NGX_HTTP_INTERNAL_SERVER_ERROR;
|
|
||||||
+
|
|
||||||
+ } else {
|
|
||||||
+ r->headers_out.status = rc;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
rc = 0;
|
|
||||||
}
|
|
||||||
|
|
149
patches/nginx-1.2.7-upstream_truncation.patch
Normal file
149
patches/nginx-1.2.7-upstream_truncation.patch
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
diff --exclude '*~' --exclude '*.swp' -urp nginx-1.2.7/src/http/modules/ngx_http_scgi_module.c nginx-1.2.7-patched/src/http/modules/ngx_http_scgi_module.c
|
||||||
|
--- nginx-1.2.7/src/http/modules/ngx_http_scgi_module.c 2013-02-09 19:08:42.000000000 -0800
|
||||||
|
+++ nginx-1.2.7-patched/src/http/modules/ngx_http_scgi_module.c 2013-04-07 12:09:55.900492634 -0700
|
||||||
|
@@ -39,6 +39,7 @@ static ngx_int_t ngx_http_scgi_process_s
|
||||||
|
static ngx_int_t ngx_http_scgi_process_header(ngx_http_request_t *r);
|
||||||
|
static void ngx_http_scgi_abort_request(ngx_http_request_t *r);
|
||||||
|
static void ngx_http_scgi_finalize_request(ngx_http_request_t *r, ngx_int_t rc);
|
||||||
|
+static ngx_int_t ngx_http_scgi_input_filter_init(void *data);
|
||||||
|
|
||||||
|
static void *ngx_http_scgi_create_loc_conf(ngx_conf_t *cf);
|
||||||
|
static char *ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent,
|
||||||
|
@@ -446,6 +447,8 @@ ngx_http_scgi_handler(ngx_http_request_t
|
||||||
|
u->pipe->input_filter = ngx_event_pipe_copy_input_filter;
|
||||||
|
u->pipe->input_ctx = r;
|
||||||
|
|
||||||
|
+ u->input_filter_init = ngx_http_scgi_input_filter_init;
|
||||||
|
+
|
||||||
|
rc = ngx_http_read_client_request_body(r, ngx_http_upstream_init);
|
||||||
|
|
||||||
|
if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
|
||||||
|
@@ -1046,6 +1049,17 @@ ngx_http_scgi_finalize_request(ngx_http_
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static ngx_int_t
|
||||||
|
+ngx_http_scgi_input_filter_init(void *data)
|
||||||
|
+{
|
||||||
|
+ ngx_http_request_t *r = data;
|
||||||
|
+
|
||||||
|
+ r->upstream->length = -1;
|
||||||
|
+
|
||||||
|
+ return NGX_OK;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static void *
|
||||||
|
ngx_http_scgi_create_loc_conf(ngx_conf_t *cf)
|
||||||
|
{
|
||||||
|
diff --exclude '*~' --exclude '*.swp' -urp nginx-1.2.7/src/http/modules/ngx_http_uwsgi_module.c nginx-1.2.7-patched/src/http/modules/ngx_http_uwsgi_module.c
|
||||||
|
--- nginx-1.2.7/src/http/modules/ngx_http_uwsgi_module.c 2013-02-09 19:08:42.000000000 -0800
|
||||||
|
+++ nginx-1.2.7-patched/src/http/modules/ngx_http_uwsgi_module.c 2013-04-07 11:58:24.546915778 -0700
|
||||||
|
@@ -46,6 +46,7 @@ static ngx_int_t ngx_http_uwsgi_process_
|
||||||
|
static void ngx_http_uwsgi_abort_request(ngx_http_request_t *r);
|
||||||
|
static void ngx_http_uwsgi_finalize_request(ngx_http_request_t *r,
|
||||||
|
ngx_int_t rc);
|
||||||
|
+static ngx_int_t ngx_http_uwsgi_input_filter_init(void *data);
|
||||||
|
|
||||||
|
static void *ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf);
|
||||||
|
static char *ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent,
|
||||||
|
@@ -479,6 +480,8 @@ ngx_http_uwsgi_handler(ngx_http_request_
|
||||||
|
u->pipe->input_filter = ngx_event_pipe_copy_input_filter;
|
||||||
|
u->pipe->input_ctx = r;
|
||||||
|
|
||||||
|
+ u->input_filter_init = ngx_http_uwsgi_input_filter_init;
|
||||||
|
+
|
||||||
|
rc = ngx_http_read_client_request_body(r, ngx_http_upstream_init);
|
||||||
|
|
||||||
|
if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
|
||||||
|
@@ -1086,6 +1089,17 @@ ngx_http_uwsgi_finalize_request(ngx_http
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static ngx_int_t
|
||||||
|
+ngx_http_uwsgi_input_filter_init(void *data)
|
||||||
|
+{
|
||||||
|
+ ngx_http_request_t *r = data;
|
||||||
|
+
|
||||||
|
+ r->upstream->length = -1;
|
||||||
|
+
|
||||||
|
+ return NGX_OK;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static void *
|
||||||
|
ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf)
|
||||||
|
{
|
||||||
|
diff --exclude '*~' --exclude '*.swp' -urp nginx-1.2.7/src/http/ngx_http_upstream.c nginx-1.2.7-patched/src/http/ngx_http_upstream.c
|
||||||
|
--- nginx-1.2.7/src/http/ngx_http_upstream.c 2013-02-11 06:39:49.000000000 -0800
|
||||||
|
+++ nginx-1.2.7-patched/src/http/ngx_http_upstream.c 2013-04-08 16:37:48.326752696 -0700
|
||||||
|
@@ -2399,7 +2399,7 @@ ngx_http_upstream_process_non_buffered_u
|
||||||
|
|
||||||
|
if (c->read->timedout) {
|
||||||
|
ngx_connection_error(c, NGX_ETIMEDOUT, "upstream timed out");
|
||||||
|
- ngx_http_upstream_finalize_request(r, u, 0);
|
||||||
|
+ ngx_http_upstream_finalize_request(r, u, NGX_HTTP_GATEWAY_TIME_OUT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2446,13 +2446,20 @@ ngx_http_upstream_process_non_buffered_r
|
||||||
|
if (u->busy_bufs == NULL) {
|
||||||
|
|
||||||
|
if (u->length == 0
|
||||||
|
- || upstream->read->eof
|
||||||
|
- || upstream->read->error)
|
||||||
|
+ || (upstream->read->eof
|
||||||
|
+ && u->length == -1
|
||||||
|
+ && u->pipe
|
||||||
|
+ && u->pipe->length <= 0))
|
||||||
|
{
|
||||||
|
ngx_http_upstream_finalize_request(r, u, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (upstream->read->eof || upstream->read->error) {
|
||||||
|
+ ngx_http_upstream_finalize_request(r, u, NGX_HTTP_BAD_GATEWAY);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
b->pos = b->start;
|
||||||
|
b->last = b->start;
|
||||||
|
}
|
||||||
|
@@ -2720,7 +2727,9 @@ ngx_http_upstream_process_request(ngx_ht
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- if (p->upstream_done || p->upstream_eof || p->upstream_error) {
|
||||||
|
+ if (p->upstream_done
|
||||||
|
+ || (p->upstream_eof && u->length == -1 && p->length <= 0))
|
||||||
|
+ {
|
||||||
|
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
|
"http upstream exit: %p", p->out);
|
||||||
|
#if 0
|
||||||
|
@@ -2729,6 +2738,14 @@ ngx_http_upstream_process_request(ngx_ht
|
||||||
|
ngx_http_upstream_finalize_request(r, u, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (p->upstream_eof || p->upstream_error) {
|
||||||
|
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
|
+ "http upstream exit: %p", p->out);
|
||||||
|
+
|
||||||
|
+ ngx_http_upstream_finalize_request(r, u, NGX_HTTP_BAD_GATEWAY);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p->downstream_error) {
|
||||||
|
@@ -3087,9 +3104,9 @@ ngx_http_upstream_finalize_request(ngx_h
|
||||||
|
|
||||||
|
if (u->header_sent
|
||||||
|
&& rc != NGX_HTTP_REQUEST_TIME_OUT
|
||||||
|
- && (rc == NGX_ERROR || rc >= NGX_HTTP_SPECIAL_RESPONSE))
|
||||||
|
+ && rc >= NGX_HTTP_SPECIAL_RESPONSE)
|
||||||
|
{
|
||||||
|
- rc = 0;
|
||||||
|
+ rc = NGX_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rc == NGX_DECLINED) {
|
418
t/sanity.t
418
t/sanity.t
File diff suppressed because it is too large
Load Diff
98
util/dist-check
Executable file
98
util/dist-check
Executable file
@ -0,0 +1,98 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use Getopt::Std qw(getopts);
|
||||||
|
use Cwd qw/cwd/;
|
||||||
|
|
||||||
|
sub sh ($);
|
||||||
|
|
||||||
|
my %opts;
|
||||||
|
getopts("lf:", \%opts) or die "Usage: $0 [-f] <cores>\n";
|
||||||
|
|
||||||
|
my $jobs = shift || 4;
|
||||||
|
|
||||||
|
my $cwd = cwd();
|
||||||
|
if ($cwd !~ /ngx_openresty-(\d+(?:\.\d+)+)$/) {
|
||||||
|
die "Bad current working directory: $cwd\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $ver = $1;
|
||||||
|
|
||||||
|
my ($make, $lua);
|
||||||
|
|
||||||
|
if ($^O eq 'freebsd' || $^O eq 'solaris') {
|
||||||
|
$make = 'gmake';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$make = 'make';
|
||||||
|
}
|
||||||
|
|
||||||
|
my $cfg_opts = "--with-http_iconv_module";
|
||||||
|
|
||||||
|
if ($opts{l}) {
|
||||||
|
$lua = 'Lua';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$lua = 'LuaJIT';
|
||||||
|
$cfg_opts .= " --with-luajit";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $prefix;
|
||||||
|
|
||||||
|
warn "=== Normal Build ===\n";
|
||||||
|
$prefix = "/usr/local/openresty";
|
||||||
|
unless ($opts{f}) {
|
||||||
|
sh "./configure $cfg_opts -j$jobs > /dev/null";
|
||||||
|
}
|
||||||
|
sh "$make -j$jobs > /dev/null";
|
||||||
|
sh "sudo $make install > /dev/null";
|
||||||
|
sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep $ver";
|
||||||
|
system "sudo killall nginx > /dev/null 2>&1";
|
||||||
|
sh "sudo $prefix/nginx/sbin/nginx";
|
||||||
|
sh "curl -si localhost/lua|grep $lua";
|
||||||
|
sh "curl -si localhost/lua|grep $ver";
|
||||||
|
sh "sudo $prefix/nginx/sbin/nginx -sstop";
|
||||||
|
|
||||||
|
warn "\n=== Debug Build ===\n";
|
||||||
|
$prefix = "/usr/local/openresty-debug";
|
||||||
|
unless ($opts{f}) {
|
||||||
|
sh "./configure --with-debug $cfg_opts --prefix=$prefix -j$jobs > /dev/null";
|
||||||
|
}
|
||||||
|
sh "$make -j$jobs > /dev/null";
|
||||||
|
sh "sudo $make install > /dev/null";
|
||||||
|
sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep $ver";
|
||||||
|
sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep '\\--with-debug'";
|
||||||
|
system "sudo killall nginx > /dev/null 2>&1";
|
||||||
|
sh "sudo $prefix/nginx/sbin/nginx";
|
||||||
|
sh "curl -si localhost/lua|grep $lua";
|
||||||
|
sh "curl -si localhost/lua|grep $ver";
|
||||||
|
sh "sudo $prefix/nginx/sbin/nginx -sstop";
|
||||||
|
|
||||||
|
warn "\n=== DTrace Build ===\n";
|
||||||
|
$prefix = "/usr/local/openresty-dtrace";
|
||||||
|
unless ($opts{f}) {
|
||||||
|
sh "./configure $cfg_opts --with-dtrace-probes --prefix=$prefix -j$jobs > /dev/null";
|
||||||
|
}
|
||||||
|
sh "$make -j$jobs > /dev/null";
|
||||||
|
sh "sudo $make install > /dev/null";
|
||||||
|
sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep $ver";
|
||||||
|
sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep '\\--with-dtrace-probes'";
|
||||||
|
system "sudo killall nginx > /dev/null 2>&1";
|
||||||
|
sh "sudo $prefix/nginx/sbin/nginx";
|
||||||
|
sh "curl -si localhost/lua|grep $lua";
|
||||||
|
sh "curl -si localhost/lua|grep $ver";
|
||||||
|
if ($^O eq 'linux') {
|
||||||
|
sh "stap -L 'process(\"$prefix/nginx/sbin/nginx\").mark(\"*\")'|grep http__lua__coroutine__done";
|
||||||
|
|
||||||
|
} elsif ($^O eq 'freebsd' || $^O eq 'darwin' || $^O eq 'solaris') {
|
||||||
|
sh "sudo dtrace -l|grep http-lua-coroutine-done";
|
||||||
|
}
|
||||||
|
|
||||||
|
sh "sudo $prefix/nginx/sbin/nginx -sstop";
|
||||||
|
|
||||||
|
sub sh ($) {
|
||||||
|
my $cmd = shift;
|
||||||
|
system($cmd) == 0 or die "Command \"$cmd\" failed";
|
||||||
|
}
|
@ -109,8 +109,8 @@ echo "$info_txt applying the location_if_inherits_proxy patch for nginx"
|
|||||||
patch -p1 < $root/patches/nginx-$main_ver-location_if_inherits_proxy.patch || exit 1
|
patch -p1 < $root/patches/nginx-$main_ver-location_if_inherits_proxy.patch || exit 1
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "$info_txt applying the nonbuffered-upstream-truncation patch for nginx"
|
echo "$info_txt applying the upstream_truncation patch for nginx"
|
||||||
patch -p1 < $root/patches/nginx-$main_ver-nonbuffered-upstream-truncation.patch || exit 1
|
patch -p1 < $root/patches/nginx-$main_ver-upstream_truncation.patch || exit 1
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "$info_txt applying the channel-uninit-params patch for nginx"
|
echo "$info_txt applying the channel-uninit-params patch for nginx"
|
||||||
@ -143,6 +143,10 @@ echo "$info_txt applying the run_posted_requests_in_resolver patch for nginx"
|
|||||||
patch -p1 < $root/patches/nginx-$main_ver-run_posted_requests_in_resolver.patch || exit 1
|
patch -p1 < $root/patches/nginx-$main_ver-run_posted_requests_in_resolver.patch || exit 1
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
echo "$info_txt applying patches/nginx-$main_ver-cve-2013-2070.patch for nginx"
|
||||||
|
patch -p0 < $root/patches/nginx-$main_ver-cve-2013-2070.patch || exit 1
|
||||||
|
echo
|
||||||
|
|
||||||
rm -f *.patch || exit 1
|
rm -f *.patch || exit 1
|
||||||
|
|
||||||
cd .. || exit 1
|
cd .. || exit 1
|
||||||
@ -156,7 +160,7 @@ rm -rf no-pool-nginx-$ver
|
|||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.44
|
ver=0.45
|
||||||
$root/util/get-tarball "http://github.com/agentzh/echo-nginx-module/tarball/v$ver" -O echo-nginx-module-$ver.tar.gz || exit 1
|
$root/util/get-tarball "http://github.com/agentzh/echo-nginx-module/tarball/v$ver" -O echo-nginx-module-$ver.tar.gz || exit 1
|
||||||
tar -xzf echo-nginx-module-$ver.tar.gz || exit 1
|
tar -xzf echo-nginx-module-$ver.tar.gz || exit 1
|
||||||
mv agentzh-echo-nginx-module-* echo-nginx-module-$ver || exit 1
|
mv agentzh-echo-nginx-module-* echo-nginx-module-$ver || exit 1
|
||||||
@ -205,14 +209,14 @@ mv agentzh-headers-more-nginx-module-* headers-more-nginx-module-$ver || exit 1
|
|||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.1.4
|
ver=0.1.5
|
||||||
$root/util/get-tarball "http://github.com/chaoslawful/drizzle-nginx-module/tarball/v$ver" -O drizzle-nginx-module-$ver.tar.gz || exit 1
|
$root/util/get-tarball "http://github.com/chaoslawful/drizzle-nginx-module/tarball/v$ver" -O drizzle-nginx-module-$ver.tar.gz || exit 1
|
||||||
tar -xzf drizzle-nginx-module-$ver.tar.gz || exit 1
|
tar -xzf drizzle-nginx-module-$ver.tar.gz || exit 1
|
||||||
mv chaoslawful-drizzle-nginx-module-* drizzle-nginx-module-$ver || exit 1
|
mv chaoslawful-drizzle-nginx-module-* drizzle-nginx-module-$ver || exit 1
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.7.18
|
ver=0.7.21
|
||||||
$root/util/get-tarball "http://github.com/chaoslawful/lua-nginx-module/tarball/v$ver" -O lua-nginx-module-$ver.tar.gz || exit 1
|
$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
|
tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
|
||||||
mv chaoslawful-lua-nginx-module-* ngx_lua-$ver || exit 1
|
mv chaoslawful-lua-nginx-module-* ngx_lua-$ver || exit 1
|
||||||
@ -247,14 +251,14 @@ mv calio-form-input-nginx-module-* form-input-nginx-module-$ver || exit 1
|
|||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.10rc7
|
ver=0.10
|
||||||
$root/util/get-tarball "http://github.com/calio/iconv-nginx-module/tarball/v$ver" -O iconv-nginx-module-$ver.tar.gz || exit 1
|
$root/util/get-tarball "http://github.com/calio/iconv-nginx-module/tarball/v$ver" -O iconv-nginx-module-$ver.tar.gz || exit 1
|
||||||
tar -xzf iconv-nginx-module-$ver.tar.gz || exit 1
|
tar -xzf iconv-nginx-module-$ver.tar.gz || exit 1
|
||||||
mv calio-iconv-nginx-module-* iconv-nginx-module-$ver || exit 1
|
mv calio-iconv-nginx-module-* iconv-nginx-module-$ver || exit 1
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.02
|
ver=0.03
|
||||||
$root/util/get-tarball "http://github.com/agentzh/encrypted-session-nginx-module/tarball/v$ver" -O encrypted-session-nginx-module-$ver.tar.gz || exit 1
|
$root/util/get-tarball "http://github.com/agentzh/encrypted-session-nginx-module/tarball/v$ver" -O encrypted-session-nginx-module-$ver.tar.gz || exit 1
|
||||||
tar -xzf encrypted-session-nginx-module-$ver.tar.gz || exit 1
|
tar -xzf encrypted-session-nginx-module-$ver.tar.gz || exit 1
|
||||||
mv agentzh-encrypted-session-nginx-module-* encrypted-session-nginx-module-$ver || exit 1
|
mv agentzh-encrypted-session-nginx-module-* encrypted-session-nginx-module-$ver || exit 1
|
||||||
@ -381,7 +385,7 @@ mv agentzh-lua-resty-dns-* lua-resty-dns-$ver || exit 1
|
|||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.10
|
ver=0.11
|
||||||
$root/util/get-tarball "http://github.com/agentzh/lua-resty-memcached/tarball/v$ver" -O "lua-resty-memcached-$ver.tar.gz" || exit 1
|
$root/util/get-tarball "http://github.com/agentzh/lua-resty-memcached/tarball/v$ver" -O "lua-resty-memcached-$ver.tar.gz" || exit 1
|
||||||
tar -xzf lua-resty-memcached-$ver.tar.gz || exit 1
|
tar -xzf lua-resty-memcached-$ver.tar.gz || exit 1
|
||||||
mv agentzh-lua-resty-memcached-* lua-resty-memcached-$ver || exit 1
|
mv agentzh-lua-resty-memcached-* lua-resty-memcached-$ver || exit 1
|
||||||
@ -395,7 +399,7 @@ mv agentzh-lua-resty-redis-* lua-resty-redis-$ver || exit 1
|
|||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
ver=0.12
|
ver=0.13
|
||||||
$root/util/get-tarball "http://github.com/agentzh/lua-resty-mysql/tarball/v$ver" -O "lua-resty-mysql-$ver.tar.gz" || exit 1
|
$root/util/get-tarball "http://github.com/agentzh/lua-resty-mysql/tarball/v$ver" -O "lua-resty-mysql-$ver.tar.gz" || exit 1
|
||||||
tar -xzf lua-resty-mysql-$ver.tar.gz || exit 1
|
tar -xzf lua-resty-mysql-$ver.tar.gz || exit 1
|
||||||
mv agentzh-lua-resty-mysql-* lua-resty-mysql-$ver || exit 1
|
mv agentzh-lua-resty-mysql-* lua-resty-mysql-$ver || exit 1
|
||||||
|
Reference in New Issue
Block a user