nginxtra 1.6.3.9 → 1.8.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/bin/nginxtra +1 -1
  3. data/bin/nginxtra_rails +1 -1
  4. data/lib/nginxtra/version.rb +1 -1
  5. data/vendor/nginx/CHANGES +358 -14
  6. data/vendor/nginx/CHANGES.ru +372 -18
  7. data/vendor/nginx/LICENSE +2 -2
  8. data/vendor/nginx/auto/cc/clang +5 -0
  9. data/vendor/nginx/auto/cc/gcc +5 -0
  10. data/vendor/nginx/auto/lib/google-perftools/conf +1 -1
  11. data/vendor/nginx/auto/lib/openssl/make +0 -5
  12. data/vendor/nginx/auto/lib/perl/conf +9 -1
  13. data/vendor/nginx/auto/make +1 -1
  14. data/vendor/nginx/auto/modules +11 -0
  15. data/vendor/nginx/auto/options +10 -2
  16. data/vendor/nginx/auto/os/darwin +0 -1
  17. data/vendor/nginx/auto/os/freebsd +6 -23
  18. data/vendor/nginx/auto/sources +16 -14
  19. data/vendor/nginx/auto/summary +3 -24
  20. data/vendor/nginx/auto/threads +20 -0
  21. data/vendor/nginx/auto/types/sizeof +2 -12
  22. data/vendor/nginx/auto/unix +50 -6
  23. data/vendor/nginx/configure +5 -0
  24. data/vendor/nginx/contrib/vim/syntax/nginx.vim +183 -50
  25. data/vendor/nginx/src/core/nginx.c +21 -9
  26. data/vendor/nginx/src/core/nginx.h +8 -2
  27. data/vendor/nginx/src/core/ngx_buf.c +88 -0
  28. data/vendor/nginx/src/core/ngx_buf.h +15 -1
  29. data/vendor/nginx/src/core/ngx_conf_file.c +4 -1
  30. data/vendor/nginx/src/core/ngx_connection.c +25 -66
  31. data/vendor/nginx/src/core/ngx_connection.h +1 -3
  32. data/vendor/nginx/src/core/ngx_core.h +11 -3
  33. data/vendor/nginx/src/core/ngx_crypt.c +1 -1
  34. data/vendor/nginx/src/core/ngx_cycle.c +7 -1
  35. data/vendor/nginx/src/core/ngx_cycle.h +6 -2
  36. data/vendor/nginx/src/core/ngx_file.c +13 -5
  37. data/vendor/nginx/src/core/ngx_file.h +6 -0
  38. data/vendor/nginx/src/core/ngx_log.c +215 -21
  39. data/vendor/nginx/src/core/ngx_log.h +9 -1
  40. data/vendor/nginx/src/core/ngx_output_chain.c +104 -15
  41. data/vendor/nginx/src/core/ngx_palloc.c +3 -7
  42. data/vendor/nginx/src/core/ngx_rbtree.c +2 -4
  43. data/vendor/nginx/src/core/ngx_rbtree.h +2 -4
  44. data/vendor/nginx/src/core/ngx_regex.c +14 -6
  45. data/vendor/nginx/src/core/ngx_resolver.c +16 -23
  46. data/vendor/nginx/src/core/ngx_resolver.h +8 -7
  47. data/vendor/nginx/src/core/ngx_shmtx.c +1 -1
  48. data/vendor/nginx/src/core/ngx_slab.c +89 -2
  49. data/vendor/nginx/src/core/ngx_slab.h +3 -0
  50. data/vendor/nginx/src/core/ngx_string.c +58 -2
  51. data/vendor/nginx/src/core/ngx_string.h +1 -0
  52. data/vendor/nginx/src/core/ngx_syslog.c +374 -0
  53. data/vendor/nginx/src/core/ngx_syslog.h +30 -0
  54. data/vendor/nginx/src/core/ngx_thread_pool.c +630 -0
  55. data/vendor/nginx/src/core/ngx_thread_pool.h +36 -0
  56. data/vendor/nginx/src/core/ngx_times.c +19 -2
  57. data/vendor/nginx/src/core/ngx_times.h +1 -0
  58. data/vendor/nginx/src/event/modules/ngx_aio_module.c +1 -1
  59. data/vendor/nginx/src/event/modules/ngx_devpoll_module.c +9 -24
  60. data/vendor/nginx/src/event/modules/ngx_epoll_module.c +152 -28
  61. data/vendor/nginx/src/event/modules/ngx_eventport_module.c +43 -25
  62. data/vendor/nginx/src/event/modules/ngx_kqueue_module.c +86 -156
  63. data/vendor/nginx/src/event/modules/ngx_poll_module.c +21 -37
  64. data/vendor/nginx/src/event/modules/ngx_rtsig_module.c +15 -27
  65. data/vendor/nginx/src/event/modules/ngx_select_module.c +10 -12
  66. data/vendor/nginx/src/event/modules/ngx_win32_select_module.c +7 -9
  67. data/vendor/nginx/src/event/ngx_event.c +5 -33
  68. data/vendor/nginx/src/event/ngx_event.h +15 -50
  69. data/vendor/nginx/src/event/ngx_event_accept.c +11 -10
  70. data/vendor/nginx/src/event/ngx_event_connect.c +0 -11
  71. data/vendor/nginx/src/event/ngx_event_connect.h +1 -4
  72. data/vendor/nginx/src/event/ngx_event_openssl.c +622 -38
  73. data/vendor/nginx/src/event/ngx_event_openssl.h +20 -2
  74. data/vendor/nginx/src/event/ngx_event_openssl_stapling.c +5 -1
  75. data/vendor/nginx/src/event/ngx_event_pipe.c +45 -19
  76. data/vendor/nginx/src/event/ngx_event_pipe.h +3 -0
  77. data/vendor/nginx/src/event/ngx_event_posted.c +7 -145
  78. data/vendor/nginx/src/event/ngx_event_posted.h +12 -39
  79. data/vendor/nginx/src/event/ngx_event_timer.c +50 -70
  80. data/vendor/nginx/src/event/ngx_event_timer.h +2 -14
  81. data/vendor/nginx/src/http/modules/ngx_http_addition_filter_module.c +1 -1
  82. data/vendor/nginx/src/http/modules/ngx_http_autoindex_module.c +416 -71
  83. data/vendor/nginx/src/http/modules/ngx_http_charset_filter_module.c +19 -15
  84. data/vendor/nginx/src/http/modules/ngx_http_dav_module.c +16 -4
  85. data/vendor/nginx/src/http/modules/ngx_http_fastcgi_module.c +601 -134
  86. data/vendor/nginx/src/http/modules/ngx_http_geo_module.c +1 -1
  87. data/vendor/nginx/src/http/modules/ngx_http_geoip_module.c +9 -3
  88. data/vendor/nginx/src/http/modules/ngx_http_gunzip_filter_module.c +9 -3
  89. data/vendor/nginx/src/http/modules/ngx_http_gzip_filter_module.c +9 -3
  90. data/vendor/nginx/src/http/modules/ngx_http_gzip_static_module.c +0 -2
  91. data/vendor/nginx/src/http/modules/ngx_http_headers_filter_module.c +197 -91
  92. data/vendor/nginx/src/http/modules/ngx_http_image_filter_module.c +1 -0
  93. data/vendor/nginx/src/http/modules/ngx_http_limit_conn_module.c +65 -162
  94. data/vendor/nginx/src/http/modules/ngx_http_limit_req_module.c +53 -67
  95. data/vendor/nginx/src/http/modules/ngx_http_log_module.c +128 -23
  96. data/vendor/nginx/src/http/modules/ngx_http_memcached_module.c +25 -6
  97. data/vendor/nginx/src/http/modules/ngx_http_mp4_module.c +1 -1
  98. data/vendor/nginx/src/http/modules/ngx_http_not_modified_filter_module.c +39 -13
  99. data/vendor/nginx/src/http/modules/ngx_http_proxy_module.c +697 -141
  100. data/vendor/nginx/src/http/modules/ngx_http_rewrite_module.c +5 -1
  101. data/vendor/nginx/src/http/modules/ngx_http_scgi_module.c +282 -125
  102. data/vendor/nginx/src/http/modules/ngx_http_ssi_filter_module.c +4 -1
  103. data/vendor/nginx/src/http/modules/ngx_http_ssl_module.c +44 -1
  104. data/vendor/nginx/src/http/modules/ngx_http_ssl_module.h +2 -0
  105. data/vendor/nginx/src/http/modules/ngx_http_stub_status_module.c +10 -8
  106. data/vendor/nginx/src/http/modules/ngx_http_sub_filter_module.c +18 -3
  107. data/vendor/nginx/src/http/modules/ngx_http_upstream_hash_module.c +641 -0
  108. data/vendor/nginx/src/http/modules/ngx_http_upstream_ip_hash_module.c +1 -1
  109. data/vendor/nginx/src/http/modules/ngx_http_upstream_keepalive_module.c +3 -21
  110. data/vendor/nginx/src/http/modules/ngx_http_upstream_least_conn_module.c +0 -5
  111. data/vendor/nginx/src/http/modules/ngx_http_uwsgi_module.c +449 -125
  112. data/vendor/nginx/src/http/modules/ngx_http_xslt_filter_module.c +4 -2
  113. data/vendor/nginx/src/http/modules/perl/ngx_http_perl_module.c +2 -1
  114. data/vendor/nginx/src/http/ngx_http.c +10 -5
  115. data/vendor/nginx/src/http/ngx_http.h +4 -4
  116. data/vendor/nginx/src/http/ngx_http_cache.h +26 -1
  117. data/vendor/nginx/src/http/ngx_http_copy_filter_module.c +109 -68
  118. data/vendor/nginx/src/http/ngx_http_core_module.c +191 -46
  119. data/vendor/nginx/src/http/ngx_http_core_module.h +16 -4
  120. data/vendor/nginx/src/http/ngx_http_file_cache.c +584 -67
  121. data/vendor/nginx/src/http/ngx_http_parse.c +55 -4
  122. data/vendor/nginx/src/http/ngx_http_request.c +14 -6
  123. data/vendor/nginx/src/http/ngx_http_request.h +12 -4
  124. data/vendor/nginx/src/http/ngx_http_request_body.c +114 -28
  125. data/vendor/nginx/src/http/ngx_http_spdy.c +383 -229
  126. data/vendor/nginx/src/http/ngx_http_spdy.h +8 -5
  127. data/vendor/nginx/src/http/ngx_http_spdy_filter_module.c +12 -4
  128. data/vendor/nginx/src/http/ngx_http_special_response.c +2 -2
  129. data/vendor/nginx/src/http/ngx_http_upstream.c +808 -132
  130. data/vendor/nginx/src/http/ngx_http_upstream.h +33 -3
  131. data/vendor/nginx/src/http/ngx_http_upstream_round_robin.c +72 -65
  132. data/vendor/nginx/src/http/ngx_http_upstream_round_robin.h +1 -2
  133. data/vendor/nginx/src/http/ngx_http_variables.c +47 -3
  134. data/vendor/nginx/src/http/ngx_http_write_filter_module.c +15 -6
  135. data/vendor/nginx/src/mail/ngx_mail.c +2 -3
  136. data/vendor/nginx/src/mail/ngx_mail.h +2 -0
  137. data/vendor/nginx/src/mail/ngx_mail_auth_http_module.c +140 -11
  138. data/vendor/nginx/src/mail/ngx_mail_core_module.c +3 -3
  139. data/vendor/nginx/src/mail/ngx_mail_handler.c +79 -2
  140. data/vendor/nginx/src/mail/ngx_mail_imap_module.c +3 -1
  141. data/vendor/nginx/src/mail/ngx_mail_pop3_module.c +3 -1
  142. data/vendor/nginx/src/mail/ngx_mail_smtp_module.c +3 -1
  143. data/vendor/nginx/src/mail/ngx_mail_ssl_module.c +125 -1
  144. data/vendor/nginx/src/mail/ngx_mail_ssl_module.h +8 -0
  145. data/vendor/nginx/src/misc/ngx_cpp_test_module.cpp +1 -1
  146. data/vendor/nginx/src/os/unix/ngx_aio_read_chain.c +1 -1
  147. data/vendor/nginx/src/os/unix/ngx_channel.c +0 -7
  148. data/vendor/nginx/src/os/unix/ngx_darwin_config.h +0 -3
  149. data/vendor/nginx/src/os/unix/ngx_darwin_sendfile_chain.c +44 -208
  150. data/vendor/nginx/src/os/unix/ngx_file_aio_read.c +25 -17
  151. data/vendor/nginx/src/os/unix/ngx_files.c +109 -0
  152. data/vendor/nginx/src/os/unix/ngx_files.h +6 -0
  153. data/vendor/nginx/src/os/unix/ngx_freebsd_config.h +0 -6
  154. data/vendor/nginx/src/os/unix/ngx_freebsd_sendfile_chain.c +78 -206
  155. data/vendor/nginx/src/os/unix/ngx_linux_aio_read.c +25 -14
  156. data/vendor/nginx/src/os/unix/ngx_linux_config.h +4 -1
  157. data/vendor/nginx/src/os/unix/ngx_linux_sendfile_chain.c +235 -194
  158. data/vendor/nginx/src/os/unix/ngx_os.h +25 -3
  159. data/vendor/nginx/src/os/unix/ngx_posix_init.c +4 -2
  160. data/vendor/nginx/src/os/unix/ngx_process_cycle.c +13 -195
  161. data/vendor/nginx/src/os/unix/ngx_process_cycle.h +0 -1
  162. data/vendor/nginx/src/os/unix/ngx_readv_chain.c +27 -108
  163. data/vendor/nginx/src/os/unix/ngx_setproctitle.h +2 -2
  164. data/vendor/nginx/src/os/unix/ngx_solaris_sendfilev_chain.c +12 -67
  165. data/vendor/nginx/src/os/unix/ngx_thread.h +26 -83
  166. data/vendor/nginx/src/os/unix/ngx_thread_cond.c +87 -0
  167. data/vendor/nginx/src/os/unix/ngx_thread_id.c +70 -0
  168. data/vendor/nginx/src/os/unix/ngx_thread_mutex.c +174 -0
  169. data/vendor/nginx/src/os/unix/ngx_user.c +2 -20
  170. data/vendor/nginx/src/os/unix/ngx_writev_chain.c +129 -98
  171. metadata +16 -17
  172. data/vendor/nginx/auto/lib/zlib/patch.zlib.h +0 -10
  173. data/vendor/nginx/src/event/ngx_event_busy_lock.c +0 -286
  174. data/vendor/nginx/src/event/ngx_event_busy_lock.h +0 -65
  175. data/vendor/nginx/src/event/ngx_event_mutex.c +0 -70
  176. data/vendor/nginx/src/http/ngx_http_busy_lock.c +0 -307
  177. data/vendor/nginx/src/http/ngx_http_busy_lock.h +0 -54
  178. data/vendor/nginx/src/os/unix/ngx_freebsd_rfork_thread.c +0 -756
  179. data/vendor/nginx/src/os/unix/ngx_freebsd_rfork_thread.h +0 -122
  180. data/vendor/nginx/src/os/unix/ngx_pthread_thread.c +0 -278
  181. data/vendor/nginx/src/os/unix/rfork_thread.S +0 -73
data/vendor/nginx/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * Copyright (C) 2002-2014 Igor Sysoev
3
- * Copyright (C) 2011-2014 Nginx, Inc.
2
+ * Copyright (C) 2002-2015 Igor Sysoev
3
+ * Copyright (C) 2011-2015 Nginx, Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -88,6 +88,11 @@ CFLAGS="$CFLAGS -Wconditional-uninitialized"
88
88
  # we have a lot of unused function arguments
89
89
  CFLAGS="$CFLAGS -Wno-unused-parameter"
90
90
 
91
+ # deprecated system OpenSSL library on OS X
92
+ if [ "$NGX_SYSTEM" = "Darwin" ]; then
93
+ CFLAGS="$CFLAGS -Wno-deprecated-declarations"
94
+ fi
95
+
91
96
  # stop on warning
92
97
  CFLAGS="$CFLAGS -Werror"
93
98
 
@@ -158,6 +158,11 @@ case "$NGX_GCC_VER" in
158
158
  CFLAGS="$CFLAGS -Wno-unused-parameter"
159
159
  # 4.2.1 shows the warning in wrong places
160
160
  #CFLAGS="$CFLAGS -Wunreachable-code"
161
+
162
+ # deprecated system OpenSSL library on OS X
163
+ if [ "$NGX_SYSTEM" = "Darwin" ]; then
164
+ CFLAGS="$CFLAGS -Wno-deprecated-declarations"
165
+ fi
161
166
  ;;
162
167
 
163
168
  *)
@@ -52,7 +52,7 @@ else
52
52
 
53
53
  cat << END
54
54
 
55
- $0: error: the Google perftool module requires the Google perftools
55
+ $0: error: the Google perftools module requires the Google perftools
56
56
  library. You can either do not enable the module or install the library.
57
57
 
58
58
  END
@@ -41,11 +41,6 @@ END
41
41
  ;;
42
42
 
43
43
  *)
44
- case $USE_THREADS in
45
- NO) OPENSSL_OPT="$OPENSSL_OPT no-threads" ;;
46
- *) OPENSSL_OPT="$OPENSSL_OPT threads" ;;
47
- esac
48
-
49
44
  case $OPENSSL in
50
45
  /*) ngx_prefix="$OPENSSL/.openssl" ;;
51
46
  *) ngx_prefix="$PWD/$OPENSSL/.openssl" ;;
@@ -41,6 +41,8 @@ if test -n "$NGX_PERL_VER"; then
41
41
  ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
42
42
 
43
43
  ngx_perl_dlext=`$NGX_PERL -MConfig -e 'print $Config{dlext}'`
44
+ ngx_perl_libdir="src/http/modules/perl/blib/arch/auto"
45
+ ngx_perl_module="$ngx_perl_libdir/nginx/nginx.$ngx_perl_dlext"
44
46
 
45
47
  if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
46
48
  have=NGX_HAVE_PERL_MULTIPLICITY . auto/have
@@ -52,8 +54,14 @@ if test -n "$NGX_PERL_VER"; then
52
54
  ngx_perl_ldopts=`echo $ngx_perl_ldopts | sed 's/ -pthread//'`
53
55
  fi
54
56
 
57
+ if [ "$NGX_SYSTEM" = "Darwin" ]; then
58
+ # OS X system perl wants to link universal binaries
59
+ ngx_perl_ldopts=`echo $ngx_perl_ldopts \
60
+ | sed -e 's/-arch x86_64 -arch i386//'`
61
+ fi
62
+
55
63
  CORE_LINK="$CORE_LINK $ngx_perl_ldopts"
56
- LINK_DEPS="$LINK_DEPS $NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.$ngx_perl_dlext"
64
+ LINK_DEPS="$LINK_DEPS $NGX_OBJS/$ngx_perl_module"
57
65
 
58
66
  if test -n "$NGX_PERL_MODULES"; then
59
67
  have=NGX_PERL_MODULES value="(u_char *) \"$NGX_PERL_MODULES\""
@@ -8,7 +8,7 @@ echo "creating $NGX_MAKEFILE"
8
8
  mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \
9
9
  $NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \
10
10
  $NGX_OBJS/src/http $NGX_OBJS/src/http/modules \
11
- $NGX_OBJS/src/http/modules/perl \
11
+ $NGX_OBJS/src/http/modules/perl \
12
12
  $NGX_OBJS/src/mail \
13
13
  $NGX_OBJS/src/misc
14
14
 
@@ -371,6 +371,11 @@ if [ $HTTP_MP4 = YES ]; then
371
371
  HTTP_SRCS="$HTTP_SRCS $HTTP_MP4_SRCS"
372
372
  fi
373
373
 
374
+ if [ $HTTP_UPSTREAM_HASH = YES ]; then
375
+ HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_HASH_MODULE"
376
+ HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_HASH_SRCS"
377
+ fi
378
+
374
379
  if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
375
380
  HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_IP_HASH_MODULE"
376
381
  HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_IP_HASH_SRCS"
@@ -427,6 +432,12 @@ fi
427
432
  modules="$CORE_MODULES $EVENT_MODULES"
428
433
 
429
434
 
435
+ # thread pool module should be initialized after events
436
+ if [ $USE_THREADS = YES ]; then
437
+ modules="$modules $THREAD_POOL_MODULE"
438
+ fi
439
+
440
+
430
441
  if [ $USE_OPENSSL = YES ]; then
431
442
  modules="$modules $OPENSSL_MODULE"
432
443
  CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
@@ -14,6 +14,7 @@ NGX_PID_PATH=
14
14
  NGX_LOCK_PATH=
15
15
  NGX_USER=
16
16
  NGX_GROUP=
17
+ NGX_BUILD=
17
18
 
18
19
  CC=${CC:-cc}
19
20
  CPP=
@@ -98,6 +99,7 @@ HTTP_FLV=NO
98
99
  HTTP_MP4=NO
99
100
  HTTP_GUNZIP=NO
100
101
  HTTP_GZIP_STATIC=NO
102
+ HTTP_UPSTREAM_HASH=YES
101
103
  HTTP_UPSTREAM_IP_HASH=YES
102
104
  HTTP_UPSTREAM_LEAST_CONN=YES
103
105
  HTTP_UPSTREAM_KEEPALIVE=YES
@@ -178,6 +180,7 @@ do
178
180
 
179
181
  --crossbuild=*) NGX_PLATFORM="$value" ;;
180
182
 
183
+ --build=*) NGX_BUILD="$value" ;;
181
184
  --builddir=*) NGX_OBJS="$value" ;;
182
185
 
183
186
  --with-rtsig_module) EVENT_RTSIG=YES ;;
@@ -187,8 +190,7 @@ do
187
190
  --without-poll_module) EVENT_POLL=NONE ;;
188
191
  --with-aio_module) EVENT_AIO=YES ;;
189
192
 
190
- #--with-threads=*) USE_THREADS="$value" ;;
191
- #--with-threads) USE_THREADS="pthreads" ;;
193
+ --with-threads) USE_THREADS=YES ;;
192
194
 
193
195
  --with-file-aio) NGX_FILE_AIO=YES ;;
194
196
  --with-ipv6) NGX_IPV6=YES ;;
@@ -249,6 +251,7 @@ use the \"--without-http_limit_conn_module\" option instead"
249
251
  --without-http_limit_req_module) HTTP_LIMIT_REQ=NO ;;
250
252
  --without-http_empty_gif_module) HTTP_EMPTY_GIF=NO ;;
251
253
  --without-http_browser_module) HTTP_BROWSER=NO ;;
254
+ --without-http_upstream_hash_module) HTTP_UPSTREAM_HASH=NO ;;
252
255
  --without-http_upstream_ip_hash_module) HTTP_UPSTREAM_IP_HASH=NO ;;
253
256
  --without-http_upstream_least_conn_module)
254
257
  HTTP_UPSTREAM_LEAST_CONN=NO ;;
@@ -341,6 +344,7 @@ cat << END
341
344
  --group=GROUP set non-privileged group for
342
345
  worker processes
343
346
 
347
+ --build=NAME set build name
344
348
  --builddir=DIR set build directory
345
349
 
346
350
  --with-rtsig_module enable rtsig module
@@ -349,6 +353,8 @@ cat << END
349
353
  --with-poll_module enable poll module
350
354
  --without-poll_module disable poll module
351
355
 
356
+ --with-threads enable thread pool support
357
+
352
358
  --with-file-aio enable file AIO support
353
359
  --with-ipv6 enable IPv6 support
354
360
 
@@ -392,6 +398,8 @@ cat << END
392
398
  --without-http_limit_req_module disable ngx_http_limit_req_module
393
399
  --without-http_empty_gif_module disable ngx_http_empty_gif_module
394
400
  --without-http_browser_module disable ngx_http_browser_module
401
+ --without-http_upstream_hash_module
402
+ disable ngx_http_upstream_hash_module
395
403
  --without-http_upstream_ip_hash_module
396
404
  disable ngx_http_upstream_ip_hash_module
397
405
  --without-http_upstream_least_conn_module
@@ -100,7 +100,6 @@ ngx_feature_test="int s = 0, fd = 1;
100
100
  . auto/feature
101
101
 
102
102
  if [ $ngx_found = yes ]; then
103
- have=NGX_HAVE_SENDFILE . auto/have
104
103
  CORE_SRCS="$CORE_SRCS $DARWIN_SENDFILE_SRCS"
105
104
  fi
106
105
 
@@ -44,10 +44,12 @@ if [ $osreldate -gt 300007 ]; then
44
44
  CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
45
45
  fi
46
46
 
47
- if [ $osreldate -gt 502103 ]; then
48
- echo " + sendfile()'s SF_NODISKIO found"
47
+ if [ $NGX_FILE_AIO = YES ]; then
48
+ if [ $osreldate -gt 502103 ]; then
49
+ echo " + sendfile()'s SF_NODISKIO found"
49
50
 
50
- have=NGX_HAVE_AIO_SENDFILE . auto/have
51
+ have=NGX_HAVE_AIO_SENDFILE . auto/have
52
+ fi
51
53
  fi
52
54
 
53
55
  # POSIX semaphores
@@ -78,7 +80,7 @@ fi
78
80
  NGX_KQUEUE_CHECKED=YES
79
81
 
80
82
 
81
- # kqueue's NOTE_LAWAT
83
+ # kqueue's NOTE_LOWAT
82
84
 
83
85
  if [ \( $version -lt 500000 -a $version -ge 430000 \) \
84
86
  -o $version -ge 500018 ]
@@ -97,25 +99,6 @@ then
97
99
  fi
98
100
 
99
101
 
100
- if [ $USE_THREADS = "rfork" ]; then
101
-
102
- echo " + using rfork()"
103
-
104
- # # kqueue's EVFILT_SIGNAL is safe
105
- #
106
- # if [ $version -gt 460101 ]; then
107
- # echo " + kqueue's EVFILT_SIGNAL is safe"
108
- # have=NGX_HAVE_SAFE_EVFILT_SIGNAL . auto/have
109
- # else
110
- # echo "$0: error: the kqueue's EVFILT_SIGNAL is unsafe on this"
111
- # echo "FreeBSD version, so --with-threads=rfork could not be used"
112
- # echo
113
- #
114
- # exit 1
115
- # fi
116
- fi
117
-
118
-
119
102
  if [ $EVENT_AIO = YES ]; then
120
103
  if [ \( $version -lt 500000 -a $version -ge 430000 \) \
121
104
  -o $version -ge 500014 ]
@@ -37,7 +37,8 @@ CORE_DEPS="src/core/nginx.h \
37
37
  src/core/ngx_resolver.h \
38
38
  src/core/ngx_open_file_cache.h \
39
39
  src/core/ngx_crypt.h \
40
- src/core/ngx_proxy_protocol.h"
40
+ src/core/ngx_proxy_protocol.h \
41
+ src/core/ngx_syslog.h"
41
42
 
42
43
 
43
44
  CORE_SRCS="src/core/nginx.c \
@@ -69,7 +70,8 @@ CORE_SRCS="src/core/nginx.c \
69
70
  src/core/ngx_resolver.c \
70
71
  src/core/ngx_open_file_cache.c \
71
72
  src/core/ngx_crypt.c \
72
- src/core/ngx_proxy_protocol.c"
73
+ src/core/ngx_proxy_protocol.c \
74
+ src/core/ngx_syslog.c"
73
75
 
74
76
 
75
77
  REGEX_MODULE=ngx_regex_module
@@ -90,14 +92,12 @@ EVENT_INCS="src/event src/event/modules"
90
92
  EVENT_DEPS="src/event/ngx_event.h \
91
93
  src/event/ngx_event_timer.h \
92
94
  src/event/ngx_event_posted.h \
93
- src/event/ngx_event_busy_lock.h \
94
95
  src/event/ngx_event_connect.h \
95
96
  src/event/ngx_event_pipe.h"
96
97
 
97
98
  EVENT_SRCS="src/event/ngx_event.c \
98
99
  src/event/ngx_event_timer.c \
99
100
  src/event/ngx_event_posted.c \
100
- src/event/ngx_event_busy_lock.c \
101
101
  src/event/ngx_event_accept.c \
102
102
  src/event/ngx_event_connect.c \
103
103
  src/event/ngx_event_pipe.c"
@@ -191,14 +191,16 @@ UNIX_SRCS="$CORE_SRCS $EVENT_SRCS \
191
191
 
192
192
  POSIX_DEPS=src/os/unix/ngx_posix_config.h
193
193
 
194
+ THREAD_POOL_MODULE=ngx_thread_pool_module
195
+ THREAD_POOL_DEPS=src/core/ngx_thread_pool.h
196
+ THREAD_POOL_SRCS="src/core/ngx_thread_pool.c
197
+ src/os/unix/ngx_thread_cond.c
198
+ src/os/unix/ngx_thread_mutex.c
199
+ src/os/unix/ngx_thread_id.c"
200
+
194
201
  FREEBSD_DEPS="src/os/unix/ngx_freebsd_config.h src/os/unix/ngx_freebsd.h"
195
202
  FREEBSD_SRCS=src/os/unix/ngx_freebsd_init.c
196
203
  FREEBSD_SENDFILE_SRCS=src/os/unix/ngx_freebsd_sendfile_chain.c
197
- FREEBSD_RFORK_DEPS="src/os/unix/ngx_freebsd_rfork_thread.h"
198
- FREEBSD_RFORK_SRCS="src/os/unix/ngx_freebsd_rfork_thread.c"
199
- FREEBSD_RFORK_THREAD_SRCS="src/os/unix/rfork_thread.S"
200
-
201
- PTHREAD_SRCS="src/os/unix/ngx_pthread_thread.c"
202
204
 
203
205
  LINUX_DEPS="src/os/unix/ngx_linux_config.h src/os/unix/ngx_linux.h"
204
206
  LINUX_SRCS=src/os/unix/ngx_linux_init.c
@@ -293,8 +295,7 @@ HTTP_DEPS="src/http/ngx_http.h \
293
295
  src/http/ngx_http_variables.h \
294
296
  src/http/ngx_http_script.h \
295
297
  src/http/ngx_http_upstream.h \
296
- src/http/ngx_http_upstream_round_robin.h \
297
- src/http/ngx_http_busy_lock.h"
298
+ src/http/ngx_http_upstream_round_robin.h"
298
299
 
299
300
  HTTP_SRCS="src/http/ngx_http.c \
300
301
  src/http/ngx_http_core_module.c \
@@ -318,9 +319,6 @@ HTTP_SRCS="src/http/ngx_http.c \
318
319
  src/http/modules/ngx_http_headers_filter_module.c \
319
320
  src/http/modules/ngx_http_not_modified_filter_module.c"
320
321
 
321
- # STUB
322
- HTTP_SRCS="$HTTP_SRCS src/http/ngx_http_busy_lock.c"
323
-
324
322
  HTTP_POSTPONE_FILTER_SRCS=src/http/ngx_http_postpone_filter_module.c
325
323
 
326
324
  HTTP_FILE_CACHE_SRCS=src/http/ngx_http_file_cache.c
@@ -495,6 +493,10 @@ HTTP_GZIP_STATIC_MODULE=ngx_http_gzip_static_module
495
493
  HTTP_GZIP_STATIC_SRCS=src/http/modules/ngx_http_gzip_static_module.c
496
494
 
497
495
 
496
+ HTTP_UPSTREAM_HASH_MODULE=ngx_http_upstream_hash_module
497
+ HTTP_UPSTREAM_HASH_SRCS=src/http/modules/ngx_http_upstream_hash_module.c
498
+
499
+
498
500
  HTTP_UPSTREAM_IP_HASH_MODULE=ngx_http_upstream_ip_hash_module
499
501
  HTTP_UPSTREAM_IP_HASH_SRCS=src/http/modules/ngx_http_upstream_ip_hash_module.c
500
502
 
@@ -3,34 +3,13 @@
3
3
  # Copyright (C) Nginx, Inc.
4
4
 
5
5
 
6
- ### STUB
7
-
8
- if [ $USE_THREADS != NO ]; then
9
-
10
- cat << END
11
-
12
- $0: error: the threads support is broken now.
13
-
14
- END
15
- exit 1
16
- fi
17
-
18
- ###
19
-
20
-
21
6
  echo
22
7
  echo "Configuration summary"
23
8
 
24
9
 
25
- #case $USE_THREADS in
26
- # rfork) echo " + using rfork()ed threads" ;;
27
- # pthreads) echo " + using libpthread threads library" ;;
28
- # libthr) echo " + using FreeBSD libthr threads library" ;;
29
- # libc_r) echo " + using FreeBSD libc_r threads library" ;;
30
- # linuxthreads) echo " + using FreeBSD LinuxThreads port library" ;;
31
- # NO) echo " + threads are not used" ;;
32
- # *) echo " + using lib$USE_THREADS threads library" ;;
33
- #esac
10
+ if [ $USE_THREADS = YES ]; then
11
+ echo " + using threads"
12
+ fi
34
13
 
35
14
  if [ $USE_PCRE = DISABLED ]; then
36
15
  echo " + PCRE library is disabled"
@@ -0,0 +1,20 @@
1
+
2
+ # Copyright (C) Nginx, Inc.
3
+
4
+
5
+ if [ $USE_THREADS = YES ]; then
6
+
7
+ if [ "$NGX_PLATFORM" = win32 ]; then
8
+ cat << END
9
+
10
+ $0: --with-threads is not supported on Windows
11
+
12
+ END
13
+ exit 1
14
+ fi
15
+
16
+ have=NGX_THREADS . auto/have
17
+ CORE_DEPS="$CORE_DEPS $THREAD_POOL_DEPS"
18
+ CORE_SRCS="$CORE_SRCS $THREAD_POOL_SRCS"
19
+ CORE_LIBS="$CORE_LIBS -lpthread"
20
+ fi
@@ -50,22 +50,12 @@ rm -rf $NGX_AUTOTEST*
50
50
 
51
51
  case $ngx_size in
52
52
  4)
53
- if [ "$ngx_type"="long" ]; then
54
- ngx_max_value=2147483647L
55
- else
56
- ngx_max_value=2147483647
57
- fi
58
-
53
+ ngx_max_value=2147483647
59
54
  ngx_max_len='(sizeof("-2147483648") - 1)'
60
55
  ;;
61
56
 
62
57
  8)
63
- if [ "$ngx_type"="long long" ]; then
64
- ngx_max_value=9223372036854775807LL
65
- else
66
- ngx_max_value=9223372036854775807L
67
- fi
68
-
58
+ ngx_max_value=9223372036854775807LL
69
59
  ngx_max_len='(sizeof("-9223372036854775808") - 1)'
70
60
  ;;
71
61
 
@@ -398,16 +398,36 @@ if [ $NGX_FILE_AIO = YES ]; then
398
398
 
399
399
  if [ $ngx_found = yes ]; then
400
400
  CORE_SRCS="$CORE_SRCS $FILE_AIO_SRCS"
401
+ fi
401
402
 
402
- elif [ $ngx_found = no ]; then
403
+ if [ $ngx_found = no ]; then
403
404
 
404
405
  ngx_feature="Linux AIO support"
405
406
  ngx_feature_name="NGX_HAVE_FILE_AIO"
406
407
  ngx_feature_run=no
407
408
  ngx_feature_incs="#include <linux/aio_abi.h>
408
- #include <sys/syscall.h>"
409
+ #include <sys/eventfd.h>"
409
410
  ngx_feature_path=
410
411
  ngx_feature_libs=
412
+ ngx_feature_test="struct iocb iocb;
413
+ iocb.aio_lio_opcode = IOCB_CMD_PREAD;
414
+ iocb.aio_flags = IOCB_FLAG_RESFD;
415
+ iocb.aio_resfd = -1;
416
+ (void) eventfd(0, 0)"
417
+ . auto/feature
418
+
419
+ if [ $ngx_found = yes ]; then
420
+ have=NGX_HAVE_EVENTFD . auto/have
421
+ have=NGX_HAVE_SYS_EVENTFD_H . auto/have
422
+ CORE_SRCS="$CORE_SRCS $LINUX_AIO_SRCS"
423
+ fi
424
+ fi
425
+
426
+ if [ $ngx_found = no ]; then
427
+
428
+ ngx_feature="Linux AIO support (SYS_eventfd)"
429
+ ngx_feature_incs="#include <linux/aio_abi.h>
430
+ #include <sys/syscall.h>"
411
431
  ngx_feature_test="int n = SYS_eventfd;
412
432
  struct iocb iocb;
413
433
  iocb.aio_lio_opcode = IOCB_CMD_PREAD;
@@ -418,16 +438,40 @@ if [ $NGX_FILE_AIO = YES ]; then
418
438
  if [ $ngx_found = yes ]; then
419
439
  have=NGX_HAVE_EVENTFD . auto/have
420
440
  CORE_SRCS="$CORE_SRCS $LINUX_AIO_SRCS"
441
+ fi
442
+ fi
421
443
 
422
- else
423
- cat << END
444
+ if [ $ngx_found = no ]; then
445
+ cat << END
424
446
 
425
447
  $0: no supported file AIO was found
426
448
  Currently file AIO is supported on FreeBSD 4.3+ and Linux 2.6.22+ only
427
449
 
428
450
  END
429
- exit 1
430
- fi
451
+ exit 1
452
+ fi
453
+
454
+ else
455
+
456
+ ngx_feature="eventfd()"
457
+ ngx_feature_name="NGX_HAVE_EVENTFD"
458
+ ngx_feature_run=no
459
+ ngx_feature_incs="#include <sys/eventfd.h>"
460
+ ngx_feature_path=
461
+ ngx_feature_libs=
462
+ ngx_feature_test="(void) eventfd(0, 0)"
463
+ . auto/feature
464
+
465
+ if [ $ngx_found = yes ]; then
466
+ have=NGX_HAVE_SYS_EVENTFD_H . auto/have
467
+ fi
468
+
469
+ if [ $ngx_found = no ]; then
470
+
471
+ ngx_feature="eventfd() (SYS_eventfd)"
472
+ ngx_feature_incs="#include <sys/syscall.h>"
473
+ ngx_feature_test="int n = SYS_eventfd"
474
+ . auto/feature
431
475
  fi
432
476
  fi
433
477