unicorn-heroku 4.3.1.1.gc608.dirty

Sign up to get free protection for your applications and to get access to all the features.
Files changed (247) hide show
  1. data/.CHANGELOG.old +25 -0
  2. data/.document +29 -0
  3. data/.gitignore +24 -0
  4. data/.mailmap +26 -0
  5. data/.wrongdoc.yml +10 -0
  6. data/Application_Timeouts +77 -0
  7. data/CONTRIBUTORS +35 -0
  8. data/COPYING +674 -0
  9. data/DESIGN +97 -0
  10. data/Documentation/.gitignore +5 -0
  11. data/Documentation/GNUmakefile +30 -0
  12. data/Documentation/unicorn.1.txt +174 -0
  13. data/Documentation/unicorn_rails.1.txt +175 -0
  14. data/FAQ +53 -0
  15. data/GIT-VERSION-GEN +40 -0
  16. data/GNUmakefile +294 -0
  17. data/HACKING +134 -0
  18. data/ISSUES +36 -0
  19. data/KNOWN_ISSUES +79 -0
  20. data/LICENSE +64 -0
  21. data/Links +56 -0
  22. data/PHILOSOPHY +145 -0
  23. data/README +154 -0
  24. data/Rakefile +97 -0
  25. data/SIGNALS +114 -0
  26. data/Sandbox +96 -0
  27. data/TODO +5 -0
  28. data/TUNING +98 -0
  29. data/bin/unicorn +121 -0
  30. data/bin/unicorn_rails +209 -0
  31. data/examples/big_app_gc.rb +2 -0
  32. data/examples/echo.ru +27 -0
  33. data/examples/git.ru +13 -0
  34. data/examples/init.sh +74 -0
  35. data/examples/logger_mp_safe.rb +25 -0
  36. data/examples/logrotate.conf +29 -0
  37. data/examples/nginx.conf +156 -0
  38. data/examples/unicorn.conf.minimal.rb +13 -0
  39. data/examples/unicorn.conf.rb +94 -0
  40. data/ext/unicorn_http/CFLAGS +13 -0
  41. data/ext/unicorn_http/c_util.h +124 -0
  42. data/ext/unicorn_http/common_field_optimization.h +111 -0
  43. data/ext/unicorn_http/ext_help.h +86 -0
  44. data/ext/unicorn_http/extconf.rb +10 -0
  45. data/ext/unicorn_http/global_variables.h +97 -0
  46. data/ext/unicorn_http/httpdate.c +82 -0
  47. data/ext/unicorn_http/unicorn_http.rl +1036 -0
  48. data/ext/unicorn_http/unicorn_http_common.rl +76 -0
  49. data/lib/unicorn.rb +107 -0
  50. data/lib/unicorn/app/exec_cgi.rb +154 -0
  51. data/lib/unicorn/app/inetd.rb +109 -0
  52. data/lib/unicorn/app/old_rails.rb +35 -0
  53. data/lib/unicorn/app/old_rails/static.rb +59 -0
  54. data/lib/unicorn/cgi_wrapper.rb +147 -0
  55. data/lib/unicorn/configurator.rb +630 -0
  56. data/lib/unicorn/const.rb +40 -0
  57. data/lib/unicorn/http_request.rb +77 -0
  58. data/lib/unicorn/http_response.rb +45 -0
  59. data/lib/unicorn/http_server.rb +744 -0
  60. data/lib/unicorn/launcher.rb +62 -0
  61. data/lib/unicorn/oob_gc.rb +71 -0
  62. data/lib/unicorn/preread_input.rb +33 -0
  63. data/lib/unicorn/socket_helper.rb +208 -0
  64. data/lib/unicorn/ssl_client.rb +11 -0
  65. data/lib/unicorn/ssl_configurator.rb +104 -0
  66. data/lib/unicorn/ssl_server.rb +42 -0
  67. data/lib/unicorn/stream_input.rb +149 -0
  68. data/lib/unicorn/tee_input.rb +126 -0
  69. data/lib/unicorn/tmpio.rb +29 -0
  70. data/lib/unicorn/util.rb +68 -0
  71. data/lib/unicorn/worker.rb +88 -0
  72. data/local.mk.sample +59 -0
  73. data/script/isolate_for_tests +50 -0
  74. data/setup.rb +1586 -0
  75. data/t/.gitignore +5 -0
  76. data/t/GNUmakefile +82 -0
  77. data/t/README +42 -0
  78. data/t/bin/content-md5-put +36 -0
  79. data/t/bin/sha1sum.rb +17 -0
  80. data/t/bin/unused_listen +40 -0
  81. data/t/bin/utee +12 -0
  82. data/t/broken-app.ru +12 -0
  83. data/t/detach.ru +11 -0
  84. data/t/env.ru +3 -0
  85. data/t/heartbeat-timeout.ru +12 -0
  86. data/t/my-tap-lib.sh +201 -0
  87. data/t/oob_gc.ru +21 -0
  88. data/t/oob_gc_path.ru +21 -0
  89. data/t/pid.ru +3 -0
  90. data/t/preread_input.ru +17 -0
  91. data/t/rack-input-tests.ru +21 -0
  92. data/t/rails3-app/.gitignore +4 -0
  93. data/t/rails3-app/Gemfile +26 -0
  94. data/t/rails3-app/Rakefile +10 -0
  95. data/t/rails3-app/app/controllers/application_controller.rb +4 -0
  96. data/t/rails3-app/app/helpers/application_helper.rb +2 -0
  97. data/t/rails3-app/app/views/layouts/application.html.erb +14 -0
  98. data/t/rails3-app/config.ru +4 -0
  99. data/t/rails3-app/config/application.rb +46 -0
  100. data/t/rails3-app/config/boot.rb +6 -0
  101. data/t/rails3-app/config/database.yml +22 -0
  102. data/t/rails3-app/config/environment.rb +5 -0
  103. data/t/rails3-app/config/environments/development.rb +19 -0
  104. data/t/rails3-app/config/environments/production.rb +42 -0
  105. data/t/rails3-app/config/environments/test.rb +32 -0
  106. data/t/rails3-app/config/initializers/backtrace_silencers.rb +7 -0
  107. data/t/rails3-app/config/initializers/inflections.rb +10 -0
  108. data/t/rails3-app/config/initializers/mime_types.rb +5 -0
  109. data/t/rails3-app/config/initializers/secret_token.rb +7 -0
  110. data/t/rails3-app/config/initializers/session_store.rb +8 -0
  111. data/t/rails3-app/config/locales/en.yml +5 -0
  112. data/t/rails3-app/config/routes.rb +58 -0
  113. data/t/rails3-app/db/seeds.rb +7 -0
  114. data/t/rails3-app/doc/README_FOR_APP +2 -0
  115. data/t/rails3-app/lib/tasks/.gitkeep +0 -0
  116. data/t/rails3-app/public/404.html +1 -0
  117. data/t/rails3-app/public/500.html +1 -0
  118. data/t/rails3-app/public/x.txt +1 -0
  119. data/t/rails3-app/script/rails +9 -0
  120. data/t/rails3-app/test/performance/browsing_test.rb +9 -0
  121. data/t/rails3-app/test/test_helper.rb +13 -0
  122. data/t/rails3-app/vendor/plugins/.gitkeep +0 -0
  123. data/t/sslgen.sh +71 -0
  124. data/t/t0000-http-basic.sh +50 -0
  125. data/t/t0001-reload-bad-config.sh +53 -0
  126. data/t/t0002-config-conflict.sh +49 -0
  127. data/t/t0002-parser-error.sh +94 -0
  128. data/t/t0003-working_directory.sh +51 -0
  129. data/t/t0004-heartbeat-timeout.sh +69 -0
  130. data/t/t0004-working_directory_broken.sh +24 -0
  131. data/t/t0005-working_directory_app.rb.sh +37 -0
  132. data/t/t0006-reopen-logs.sh +83 -0
  133. data/t/t0006.ru +13 -0
  134. data/t/t0007-working_directory_no_embed_cli.sh +44 -0
  135. data/t/t0008-back_out_of_upgrade.sh +110 -0
  136. data/t/t0009-broken-app.sh +56 -0
  137. data/t/t0009-winch_ttin.sh +59 -0
  138. data/t/t0010-reap-logging.sh +55 -0
  139. data/t/t0011-active-unix-socket.sh +79 -0
  140. data/t/t0012-reload-empty-config.sh +85 -0
  141. data/t/t0013-rewindable-input-false.sh +24 -0
  142. data/t/t0013.ru +12 -0
  143. data/t/t0014-rewindable-input-true.sh +24 -0
  144. data/t/t0014.ru +12 -0
  145. data/t/t0015-configurator-internals.sh +25 -0
  146. data/t/t0016-trust-x-forwarded-false.sh +30 -0
  147. data/t/t0017-trust-x-forwarded-true.sh +30 -0
  148. data/t/t0018-write-on-close.sh +23 -0
  149. data/t/t0019-max_header_len.sh +49 -0
  150. data/t/t0020-at_exit-handler.sh +49 -0
  151. data/t/t0021-process_detach.sh +29 -0
  152. data/t/t0100-rack-input-tests.sh +124 -0
  153. data/t/t0116-client_body_buffer_size.sh +80 -0
  154. data/t/t0116.ru +16 -0
  155. data/t/t0300-rails3-basic.sh +28 -0
  156. data/t/t0301-rails3-missing-config-ru.sh +33 -0
  157. data/t/t0302-rails3-alt-working_directory.sh +32 -0
  158. data/t/t0303-rails3-alt-working_directory_config.ru.sh +56 -0
  159. data/t/t0304-rails3-alt-working_directory_no_embed_cli.sh +52 -0
  160. data/t/t0600-https-server-basic.sh +48 -0
  161. data/t/t9000-preread-input.sh +48 -0
  162. data/t/t9001-oob_gc.sh +47 -0
  163. data/t/t9002-oob_gc-path.sh +75 -0
  164. data/t/test-lib.sh +113 -0
  165. data/t/test-rails3.sh +27 -0
  166. data/t/write-on-close.ru +11 -0
  167. data/test/aggregate.rb +15 -0
  168. data/test/benchmark/README +50 -0
  169. data/test/benchmark/dd.ru +18 -0
  170. data/test/benchmark/stack.ru +8 -0
  171. data/test/exec/README +5 -0
  172. data/test/exec/test_exec.rb +1055 -0
  173. data/test/rails/app-1.2.3/.gitignore +2 -0
  174. data/test/rails/app-1.2.3/Rakefile +7 -0
  175. data/test/rails/app-1.2.3/app/controllers/application.rb +6 -0
  176. data/test/rails/app-1.2.3/app/controllers/foo_controller.rb +36 -0
  177. data/test/rails/app-1.2.3/app/helpers/application_helper.rb +4 -0
  178. data/test/rails/app-1.2.3/config/boot.rb +11 -0
  179. data/test/rails/app-1.2.3/config/database.yml +12 -0
  180. data/test/rails/app-1.2.3/config/environment.rb +13 -0
  181. data/test/rails/app-1.2.3/config/environments/development.rb +9 -0
  182. data/test/rails/app-1.2.3/config/environments/production.rb +5 -0
  183. data/test/rails/app-1.2.3/config/routes.rb +6 -0
  184. data/test/rails/app-1.2.3/db/.gitignore +0 -0
  185. data/test/rails/app-1.2.3/public/404.html +1 -0
  186. data/test/rails/app-1.2.3/public/500.html +1 -0
  187. data/test/rails/app-2.0.2/.gitignore +2 -0
  188. data/test/rails/app-2.0.2/Rakefile +7 -0
  189. data/test/rails/app-2.0.2/app/controllers/application.rb +4 -0
  190. data/test/rails/app-2.0.2/app/controllers/foo_controller.rb +36 -0
  191. data/test/rails/app-2.0.2/app/helpers/application_helper.rb +4 -0
  192. data/test/rails/app-2.0.2/config/boot.rb +11 -0
  193. data/test/rails/app-2.0.2/config/database.yml +12 -0
  194. data/test/rails/app-2.0.2/config/environment.rb +17 -0
  195. data/test/rails/app-2.0.2/config/environments/development.rb +8 -0
  196. data/test/rails/app-2.0.2/config/environments/production.rb +5 -0
  197. data/test/rails/app-2.0.2/config/routes.rb +6 -0
  198. data/test/rails/app-2.0.2/db/.gitignore +0 -0
  199. data/test/rails/app-2.0.2/public/404.html +1 -0
  200. data/test/rails/app-2.0.2/public/500.html +1 -0
  201. data/test/rails/app-2.1.2/.gitignore +2 -0
  202. data/test/rails/app-2.1.2/Rakefile +7 -0
  203. data/test/rails/app-2.1.2/app/controllers/application.rb +4 -0
  204. data/test/rails/app-2.1.2/app/controllers/foo_controller.rb +36 -0
  205. data/test/rails/app-2.1.2/app/helpers/application_helper.rb +4 -0
  206. data/test/rails/app-2.1.2/config/boot.rb +111 -0
  207. data/test/rails/app-2.1.2/config/database.yml +12 -0
  208. data/test/rails/app-2.1.2/config/environment.rb +17 -0
  209. data/test/rails/app-2.1.2/config/environments/development.rb +7 -0
  210. data/test/rails/app-2.1.2/config/environments/production.rb +5 -0
  211. data/test/rails/app-2.1.2/config/routes.rb +6 -0
  212. data/test/rails/app-2.1.2/db/.gitignore +0 -0
  213. data/test/rails/app-2.1.2/public/404.html +1 -0
  214. data/test/rails/app-2.1.2/public/500.html +1 -0
  215. data/test/rails/app-2.2.2/.gitignore +2 -0
  216. data/test/rails/app-2.2.2/Rakefile +7 -0
  217. data/test/rails/app-2.2.2/app/controllers/application.rb +4 -0
  218. data/test/rails/app-2.2.2/app/controllers/foo_controller.rb +36 -0
  219. data/test/rails/app-2.2.2/app/helpers/application_helper.rb +4 -0
  220. data/test/rails/app-2.2.2/config/boot.rb +111 -0
  221. data/test/rails/app-2.2.2/config/database.yml +12 -0
  222. data/test/rails/app-2.2.2/config/environment.rb +17 -0
  223. data/test/rails/app-2.2.2/config/environments/development.rb +7 -0
  224. data/test/rails/app-2.2.2/config/environments/production.rb +5 -0
  225. data/test/rails/app-2.2.2/config/routes.rb +6 -0
  226. data/test/rails/app-2.2.2/db/.gitignore +0 -0
  227. data/test/rails/app-2.2.2/public/404.html +1 -0
  228. data/test/rails/app-2.2.2/public/500.html +1 -0
  229. data/test/rails/test_rails.rb +287 -0
  230. data/test/test_helper.rb +300 -0
  231. data/test/unit/test_configurator.rb +158 -0
  232. data/test/unit/test_droplet.rb +28 -0
  233. data/test/unit/test_http_parser.rb +860 -0
  234. data/test/unit/test_http_parser_ng.rb +716 -0
  235. data/test/unit/test_http_parser_xftrust.rb +38 -0
  236. data/test/unit/test_request.rb +197 -0
  237. data/test/unit/test_response.rb +99 -0
  238. data/test/unit/test_server.rb +289 -0
  239. data/test/unit/test_signals.rb +207 -0
  240. data/test/unit/test_sni_hostnames.rb +47 -0
  241. data/test/unit/test_socket_helper.rb +192 -0
  242. data/test/unit/test_stream_input.rb +204 -0
  243. data/test/unit/test_tee_input.rb +296 -0
  244. data/test/unit/test_upload.rb +306 -0
  245. data/test/unit/test_util.rb +100 -0
  246. data/unicorn-heroku.gemspec +44 -0
  247. metadata +426 -0
@@ -0,0 +1,100 @@
1
+ # -*- encoding: binary -*-
2
+
3
+ require 'test/test_helper'
4
+ require 'tempfile'
5
+
6
+ class TestUtil < Test::Unit::TestCase
7
+
8
+ EXPECT_FLAGS = File::WRONLY | File::APPEND
9
+ def test_reopen_logs_noop
10
+ tmp = Tempfile.new('')
11
+ fp = File.open(tmp.path, 'ab')
12
+ fp.sync = true
13
+ ext = fp.external_encoding rescue nil
14
+ int = fp.internal_encoding rescue nil
15
+ before = fp.stat.inspect
16
+ Unicorn::Util.reopen_logs
17
+ assert_equal before, File.stat(fp.path).inspect
18
+ assert_equal ext, (fp.external_encoding rescue nil)
19
+ assert_equal int, (fp.internal_encoding rescue nil)
20
+ assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & fp.fcntl(Fcntl::F_GETFL))
21
+ assert_nothing_raised { tmp.close! }
22
+ assert_nothing_raised { fp.close }
23
+ end
24
+
25
+ def test_reopen_logs_renamed
26
+ tmp = Tempfile.new('')
27
+ tmp_path = tmp.path.freeze
28
+ fp = File.open(tmp_path, 'ab')
29
+ fp.sync = true
30
+
31
+ ext = fp.external_encoding rescue nil
32
+ int = fp.internal_encoding rescue nil
33
+ before = fp.stat.inspect
34
+ to = Tempfile.new('')
35
+ File.rename(tmp_path, to.path)
36
+ assert ! File.exist?(tmp_path)
37
+ Unicorn::Util.reopen_logs
38
+ assert_equal tmp_path, tmp.path
39
+ assert File.exist?(tmp_path)
40
+ assert before != File.stat(tmp_path).inspect
41
+ assert_equal fp.stat.inspect, File.stat(tmp_path).inspect
42
+ assert_equal ext, (fp.external_encoding rescue nil)
43
+ assert_equal int, (fp.internal_encoding rescue nil)
44
+ assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & fp.fcntl(Fcntl::F_GETFL))
45
+ assert fp.sync
46
+ assert_nothing_raised { tmp.close! }
47
+ assert_nothing_raised { to.close! }
48
+ assert_nothing_raised { fp.close }
49
+ end
50
+
51
+ def test_reopen_logs_renamed_with_encoding
52
+ tmp = Tempfile.new('')
53
+ tmp_path = tmp.path.dup.freeze
54
+ Encoding.list.each { |encoding|
55
+ File.open(tmp_path, "a:#{encoding.to_s}") { |fp|
56
+ fp.sync = true
57
+ assert_equal encoding, fp.external_encoding
58
+ assert_nil fp.internal_encoding
59
+ File.unlink(tmp_path)
60
+ assert ! File.exist?(tmp_path)
61
+ Unicorn::Util.reopen_logs
62
+ assert_equal tmp_path, fp.path
63
+ assert File.exist?(tmp_path)
64
+ assert_equal fp.stat.inspect, File.stat(tmp_path).inspect
65
+ assert_equal encoding, fp.external_encoding
66
+ assert_nil fp.internal_encoding
67
+ assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & fp.fcntl(Fcntl::F_GETFL))
68
+ assert fp.sync
69
+ }
70
+ }
71
+ assert_nothing_raised { tmp.close! }
72
+ end if STDIN.respond_to?(:external_encoding)
73
+
74
+ def test_reopen_logs_renamed_with_internal_encoding
75
+ tmp = Tempfile.new('')
76
+ tmp_path = tmp.path.dup.freeze
77
+ Encoding.list.each { |ext|
78
+ Encoding.list.each { |int|
79
+ next if ext == int
80
+ File.open(tmp_path, "a:#{ext.to_s}:#{int.to_s}") { |fp|
81
+ fp.sync = true
82
+ assert_equal ext, fp.external_encoding
83
+ assert_equal int, fp.internal_encoding
84
+ File.unlink(tmp_path)
85
+ assert ! File.exist?(tmp_path)
86
+ Unicorn::Util.reopen_logs
87
+ assert_equal tmp_path, fp.path
88
+ assert File.exist?(tmp_path)
89
+ assert_equal fp.stat.inspect, File.stat(tmp_path).inspect
90
+ assert_equal ext, fp.external_encoding
91
+ assert_equal int, fp.internal_encoding
92
+ assert_equal(EXPECT_FLAGS, EXPECT_FLAGS & fp.fcntl(Fcntl::F_GETFL))
93
+ assert fp.sync
94
+ }
95
+ }
96
+ }
97
+ assert_nothing_raised { tmp.close! }
98
+ end if STDIN.respond_to?(:external_encoding)
99
+
100
+ end
@@ -0,0 +1,44 @@
1
+ # -*- encoding: binary -*-
2
+ ENV["VERSION"] or abort "VERSION= must be specified"
3
+ manifest = File.readlines('.manifest').map! { |x| x.chomp! }
4
+ require 'wrongdoc'
5
+ extend Wrongdoc::Gemspec
6
+ name, summary, title = readme_metadata
7
+
8
+ # don't bother with tests that fork, not worth our time to get working
9
+ # with `gem check -t` ... (of course we care for them when testing with
10
+ # GNU make when they can run in parallel)
11
+ test_files = manifest.grep(%r{\Atest/unit/test_.*\.rb\z}).map do |f|
12
+ File.readlines(f).grep(/\bfork\b/).empty? ? f : nil
13
+ end.compact
14
+
15
+ Gem::Specification.new do |s|
16
+ s.name = %q{unicorn-heroku}
17
+ s.version = ENV["VERSION"].dup
18
+ s.authors = ["Michael Fairley"]
19
+ s.summary = summary
20
+ s.date = Time.now.utc.strftime('%Y-%m-%d')
21
+ s.description = readme_description
22
+ s.email = %q{michaelfairley@gmail.com}
23
+ s.executables = %w(unicorn unicorn_rails)
24
+ s.extensions = %w(ext/unicorn_http/extconf.rb)
25
+ s.extra_rdoc_files = extra_rdoc_files(manifest)
26
+ s.files = manifest
27
+ s.homepage = Wrongdoc.config[:rdoc_url]
28
+ s.rdoc_options = rdoc_options
29
+ s.rubyforge_project = %q{mongrel}
30
+ s.test_files = test_files
31
+
32
+ # for people that are absolutely stuck on Rails 2.3.2 and can't
33
+ # up/downgrade to any other version, the Rack dependency may be
34
+ # commented out. Nevertheless, upgrading to Rails 2.3.4 or later is
35
+ # *strongly* recommended for security reasons.
36
+ s.add_dependency(%q<rack>)
37
+ s.add_dependency(%q<kgio>, '~> 2.6')
38
+ s.add_dependency(%q<raindrops>, '~> 0.7')
39
+
40
+ s.add_development_dependency('isolate', '~> 3.2')
41
+ s.add_development_dependency('wrongdoc', '~> 1.6.1')
42
+
43
+ # s.licenses = %w(GPLv2 Ruby) # licenses= method is not in older RubyGems
44
+ end
metadata ADDED
@@ -0,0 +1,426 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: !binary |-
3
+ dW5pY29ybi1oZXJva3U=
4
+ version: !ruby/object:Gem::Version
5
+ version: 4.3.1.1.gc608.dirty
6
+ prerelease: 8
7
+ platform: ruby
8
+ authors:
9
+ - !binary |-
10
+ TWljaGFlbCBGYWlybGV5
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2012-05-29 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: !binary |-
18
+ cmFjaw==
19
+ requirement: &2159560840 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: *2159560840
28
+ - !ruby/object:Gem::Dependency
29
+ name: !binary |-
30
+ a2dpbw==
31
+ requirement: &2159560340 !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - !binary |-
35
+ fj4=
36
+ - !ruby/object:Gem::Version
37
+ version: !binary |-
38
+ Mi42
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: *2159560340
42
+ - !ruby/object:Gem::Dependency
43
+ name: !binary |-
44
+ cmFpbmRyb3Bz
45
+ requirement: &2159559840 !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - !binary |-
49
+ fj4=
50
+ - !ruby/object:Gem::Version
51
+ version: !binary |-
52
+ MC43
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: *2159559840
56
+ - !ruby/object:Gem::Dependency
57
+ name: !binary |-
58
+ aXNvbGF0ZQ==
59
+ requirement: &2159559380 !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - !binary |-
63
+ fj4=
64
+ - !ruby/object:Gem::Version
65
+ version: !binary |-
66
+ My4y
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *2159559380
70
+ - !ruby/object:Gem::Dependency
71
+ name: !binary |-
72
+ d3Jvbmdkb2M=
73
+ requirement: &2159558920 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - !binary |-
77
+ fj4=
78
+ - !ruby/object:Gem::Version
79
+ version: !binary |-
80
+ MS42LjE=
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: *2159558920
84
+ description: ! '\This is a fork of Unicorn designed to run on Heroku. Heroku and Unicorn
85
+
86
+ disagree on signal handling, so I''ve swapped Unicorn''s handling of
87
+
88
+ SIGINT/SIGTERM and SIGQUIT. Now, Unicorn can shut down gracefully on
89
+
90
+ Heroku.'
91
+ email: !binary |-
92
+ bWljaGFlbGZhaXJsZXlAZ21haWwuY29t
93
+ executables:
94
+ - !binary |-
95
+ dW5pY29ybg==
96
+ - !binary |-
97
+ dW5pY29ybl9yYWlscw==
98
+ extensions:
99
+ - !binary |-
100
+ ZXh0L3VuaWNvcm5faHR0cC9leHRjb25mLnJi
101
+ extra_rdoc_files:
102
+ - FAQ
103
+ - README
104
+ - TUNING
105
+ - PHILOSOPHY
106
+ - HACKING
107
+ - DESIGN
108
+ - CONTRIBUTORS
109
+ - LICENSE
110
+ - SIGNALS
111
+ - KNOWN_ISSUES
112
+ - TODO
113
+ - NEWS
114
+ - ChangeLog
115
+ - LATEST
116
+ - lib/unicorn.rb
117
+ - lib/unicorn/configurator.rb
118
+ - lib/unicorn/http_server.rb
119
+ - lib/unicorn/preread_input.rb
120
+ - lib/unicorn/stream_input.rb
121
+ - lib/unicorn/tee_input.rb
122
+ - lib/unicorn/util.rb
123
+ - lib/unicorn/oob_gc.rb
124
+ - lib/unicorn/worker.rb
125
+ - ISSUES
126
+ - Sandbox
127
+ - Links
128
+ - Application_Timeouts
129
+ files:
130
+ - .CHANGELOG.old
131
+ - .document
132
+ - .gitignore
133
+ - .mailmap
134
+ - .manifest
135
+ - .wrongdoc.yml
136
+ - Application_Timeouts
137
+ - CONTRIBUTORS
138
+ - COPYING
139
+ - ChangeLog
140
+ - DESIGN
141
+ - Documentation/.gitignore
142
+ - Documentation/GNUmakefile
143
+ - Documentation/unicorn.1.txt
144
+ - Documentation/unicorn_rails.1.txt
145
+ - FAQ
146
+ - GIT-VERSION-FILE
147
+ - GIT-VERSION-GEN
148
+ - GNUmakefile
149
+ - HACKING
150
+ - ISSUES
151
+ - KNOWN_ISSUES
152
+ - LATEST
153
+ - LICENSE
154
+ - Links
155
+ - NEWS
156
+ - PHILOSOPHY
157
+ - README
158
+ - Rakefile
159
+ - SIGNALS
160
+ - Sandbox
161
+ - TODO
162
+ - TUNING
163
+ - bin/unicorn
164
+ - bin/unicorn_rails
165
+ - examples/big_app_gc.rb
166
+ - examples/echo.ru
167
+ - examples/git.ru
168
+ - examples/init.sh
169
+ - examples/logger_mp_safe.rb
170
+ - examples/logrotate.conf
171
+ - examples/nginx.conf
172
+ - examples/unicorn.conf.minimal.rb
173
+ - examples/unicorn.conf.rb
174
+ - ext/unicorn_http/CFLAGS
175
+ - ext/unicorn_http/c_util.h
176
+ - ext/unicorn_http/common_field_optimization.h
177
+ - ext/unicorn_http/ext_help.h
178
+ - ext/unicorn_http/extconf.rb
179
+ - ext/unicorn_http/global_variables.h
180
+ - ext/unicorn_http/httpdate.c
181
+ - ext/unicorn_http/unicorn_http.c
182
+ - ext/unicorn_http/unicorn_http.rl
183
+ - ext/unicorn_http/unicorn_http_common.rl
184
+ - lib/unicorn.rb
185
+ - lib/unicorn/app/exec_cgi.rb
186
+ - lib/unicorn/app/inetd.rb
187
+ - lib/unicorn/app/old_rails.rb
188
+ - lib/unicorn/app/old_rails/static.rb
189
+ - lib/unicorn/cgi_wrapper.rb
190
+ - lib/unicorn/configurator.rb
191
+ - lib/unicorn/const.rb
192
+ - lib/unicorn/http_request.rb
193
+ - lib/unicorn/http_response.rb
194
+ - lib/unicorn/http_server.rb
195
+ - lib/unicorn/launcher.rb
196
+ - lib/unicorn/oob_gc.rb
197
+ - lib/unicorn/preread_input.rb
198
+ - lib/unicorn/socket_helper.rb
199
+ - lib/unicorn/ssl_client.rb
200
+ - lib/unicorn/ssl_configurator.rb
201
+ - lib/unicorn/ssl_server.rb
202
+ - lib/unicorn/stream_input.rb
203
+ - lib/unicorn/tee_input.rb
204
+ - lib/unicorn/tmpio.rb
205
+ - lib/unicorn/util.rb
206
+ - lib/unicorn/worker.rb
207
+ - local.mk.sample
208
+ - man/man1/unicorn.1
209
+ - man/man1/unicorn_rails.1
210
+ - script/isolate_for_tests
211
+ - setup.rb
212
+ - t/.gitignore
213
+ - t/GNUmakefile
214
+ - t/README
215
+ - t/bin/content-md5-put
216
+ - t/bin/sha1sum.rb
217
+ - t/bin/unused_listen
218
+ - t/bin/utee
219
+ - t/broken-app.ru
220
+ - t/detach.ru
221
+ - t/env.ru
222
+ - t/heartbeat-timeout.ru
223
+ - t/my-tap-lib.sh
224
+ - t/oob_gc.ru
225
+ - t/oob_gc_path.ru
226
+ - t/pid.ru
227
+ - t/preread_input.ru
228
+ - t/rack-input-tests.ru
229
+ - t/rails3-app/.gitignore
230
+ - t/rails3-app/Gemfile
231
+ - t/rails3-app/Rakefile
232
+ - t/rails3-app/app/controllers/application_controller.rb
233
+ - t/rails3-app/app/helpers/application_helper.rb
234
+ - t/rails3-app/app/views/layouts/application.html.erb
235
+ - t/rails3-app/config.ru
236
+ - t/rails3-app/config/application.rb
237
+ - t/rails3-app/config/boot.rb
238
+ - t/rails3-app/config/database.yml
239
+ - t/rails3-app/config/environment.rb
240
+ - t/rails3-app/config/environments/development.rb
241
+ - t/rails3-app/config/environments/production.rb
242
+ - t/rails3-app/config/environments/test.rb
243
+ - t/rails3-app/config/initializers/backtrace_silencers.rb
244
+ - t/rails3-app/config/initializers/inflections.rb
245
+ - t/rails3-app/config/initializers/mime_types.rb
246
+ - t/rails3-app/config/initializers/secret_token.rb
247
+ - t/rails3-app/config/initializers/session_store.rb
248
+ - t/rails3-app/config/locales/en.yml
249
+ - t/rails3-app/config/routes.rb
250
+ - t/rails3-app/db/seeds.rb
251
+ - t/rails3-app/doc/README_FOR_APP
252
+ - t/rails3-app/lib/tasks/.gitkeep
253
+ - t/rails3-app/public/404.html
254
+ - t/rails3-app/public/500.html
255
+ - t/rails3-app/public/x.txt
256
+ - t/rails3-app/script/rails
257
+ - t/rails3-app/test/performance/browsing_test.rb
258
+ - t/rails3-app/test/test_helper.rb
259
+ - t/rails3-app/vendor/plugins/.gitkeep
260
+ - t/sslgen.sh
261
+ - t/t0000-http-basic.sh
262
+ - t/t0001-reload-bad-config.sh
263
+ - t/t0002-config-conflict.sh
264
+ - t/t0002-parser-error.sh
265
+ - t/t0003-working_directory.sh
266
+ - t/t0004-heartbeat-timeout.sh
267
+ - t/t0004-working_directory_broken.sh
268
+ - t/t0005-working_directory_app.rb.sh
269
+ - t/t0006-reopen-logs.sh
270
+ - t/t0006.ru
271
+ - t/t0007-working_directory_no_embed_cli.sh
272
+ - t/t0008-back_out_of_upgrade.sh
273
+ - t/t0009-broken-app.sh
274
+ - t/t0009-winch_ttin.sh
275
+ - t/t0010-reap-logging.sh
276
+ - t/t0011-active-unix-socket.sh
277
+ - t/t0012-reload-empty-config.sh
278
+ - t/t0013-rewindable-input-false.sh
279
+ - t/t0013.ru
280
+ - t/t0014-rewindable-input-true.sh
281
+ - t/t0014.ru
282
+ - t/t0015-configurator-internals.sh
283
+ - t/t0016-trust-x-forwarded-false.sh
284
+ - t/t0017-trust-x-forwarded-true.sh
285
+ - t/t0018-write-on-close.sh
286
+ - t/t0019-max_header_len.sh
287
+ - t/t0020-at_exit-handler.sh
288
+ - t/t0021-process_detach.sh
289
+ - t/t0100-rack-input-tests.sh
290
+ - t/t0116-client_body_buffer_size.sh
291
+ - t/t0116.ru
292
+ - t/t0300-rails3-basic.sh
293
+ - t/t0301-rails3-missing-config-ru.sh
294
+ - t/t0302-rails3-alt-working_directory.sh
295
+ - t/t0303-rails3-alt-working_directory_config.ru.sh
296
+ - t/t0304-rails3-alt-working_directory_no_embed_cli.sh
297
+ - t/t0600-https-server-basic.sh
298
+ - t/t9000-preread-input.sh
299
+ - t/t9001-oob_gc.sh
300
+ - t/t9002-oob_gc-path.sh
301
+ - t/test-lib.sh
302
+ - t/test-rails3.sh
303
+ - t/write-on-close.ru
304
+ - test/aggregate.rb
305
+ - test/benchmark/README
306
+ - test/benchmark/dd.ru
307
+ - test/benchmark/stack.ru
308
+ - test/exec/README
309
+ - test/exec/test_exec.rb
310
+ - test/rails/app-1.2.3/.gitignore
311
+ - test/rails/app-1.2.3/Rakefile
312
+ - test/rails/app-1.2.3/app/controllers/application.rb
313
+ - test/rails/app-1.2.3/app/controllers/foo_controller.rb
314
+ - test/rails/app-1.2.3/app/helpers/application_helper.rb
315
+ - test/rails/app-1.2.3/config/boot.rb
316
+ - test/rails/app-1.2.3/config/database.yml
317
+ - test/rails/app-1.2.3/config/environment.rb
318
+ - test/rails/app-1.2.3/config/environments/development.rb
319
+ - test/rails/app-1.2.3/config/environments/production.rb
320
+ - test/rails/app-1.2.3/config/routes.rb
321
+ - test/rails/app-1.2.3/db/.gitignore
322
+ - test/rails/app-1.2.3/log/.gitignore
323
+ - test/rails/app-1.2.3/public/404.html
324
+ - test/rails/app-1.2.3/public/500.html
325
+ - test/rails/app-2.0.2/.gitignore
326
+ - test/rails/app-2.0.2/Rakefile
327
+ - test/rails/app-2.0.2/app/controllers/application.rb
328
+ - test/rails/app-2.0.2/app/controllers/foo_controller.rb
329
+ - test/rails/app-2.0.2/app/helpers/application_helper.rb
330
+ - test/rails/app-2.0.2/config/boot.rb
331
+ - test/rails/app-2.0.2/config/database.yml
332
+ - test/rails/app-2.0.2/config/environment.rb
333
+ - test/rails/app-2.0.2/config/environments/development.rb
334
+ - test/rails/app-2.0.2/config/environments/production.rb
335
+ - test/rails/app-2.0.2/config/routes.rb
336
+ - test/rails/app-2.0.2/db/.gitignore
337
+ - test/rails/app-2.0.2/log/.gitignore
338
+ - test/rails/app-2.0.2/public/404.html
339
+ - test/rails/app-2.0.2/public/500.html
340
+ - test/rails/app-2.1.2/.gitignore
341
+ - test/rails/app-2.1.2/Rakefile
342
+ - test/rails/app-2.1.2/app/controllers/application.rb
343
+ - test/rails/app-2.1.2/app/controllers/foo_controller.rb
344
+ - test/rails/app-2.1.2/app/helpers/application_helper.rb
345
+ - test/rails/app-2.1.2/config/boot.rb
346
+ - test/rails/app-2.1.2/config/database.yml
347
+ - test/rails/app-2.1.2/config/environment.rb
348
+ - test/rails/app-2.1.2/config/environments/development.rb
349
+ - test/rails/app-2.1.2/config/environments/production.rb
350
+ - test/rails/app-2.1.2/config/routes.rb
351
+ - test/rails/app-2.1.2/db/.gitignore
352
+ - test/rails/app-2.1.2/log/.gitignore
353
+ - test/rails/app-2.1.2/public/404.html
354
+ - test/rails/app-2.1.2/public/500.html
355
+ - test/rails/app-2.2.2/.gitignore
356
+ - test/rails/app-2.2.2/Rakefile
357
+ - test/rails/app-2.2.2/app/controllers/application.rb
358
+ - test/rails/app-2.2.2/app/controllers/foo_controller.rb
359
+ - test/rails/app-2.2.2/app/helpers/application_helper.rb
360
+ - test/rails/app-2.2.2/config/boot.rb
361
+ - test/rails/app-2.2.2/config/database.yml
362
+ - test/rails/app-2.2.2/config/environment.rb
363
+ - test/rails/app-2.2.2/config/environments/development.rb
364
+ - test/rails/app-2.2.2/config/environments/production.rb
365
+ - test/rails/app-2.2.2/config/routes.rb
366
+ - test/rails/app-2.2.2/db/.gitignore
367
+ - test/rails/app-2.2.2/log/.gitignore
368
+ - test/rails/app-2.2.2/public/404.html
369
+ - test/rails/app-2.2.2/public/500.html
370
+ - test/rails/test_rails.rb
371
+ - test/test_helper.rb
372
+ - test/unit/test_configurator.rb
373
+ - test/unit/test_droplet.rb
374
+ - test/unit/test_http_parser.rb
375
+ - test/unit/test_http_parser_ng.rb
376
+ - test/unit/test_http_parser_xftrust.rb
377
+ - test/unit/test_request.rb
378
+ - test/unit/test_response.rb
379
+ - test/unit/test_server.rb
380
+ - test/unit/test_signals.rb
381
+ - test/unit/test_sni_hostnames.rb
382
+ - test/unit/test_socket_helper.rb
383
+ - test/unit/test_stream_input.rb
384
+ - test/unit/test_tee_input.rb
385
+ - test/unit/test_upload.rb
386
+ - test/unit/test_util.rb
387
+ - unicorn-heroku.gemspec
388
+ homepage: http://unicorn.bogomips.org/
389
+ licenses: []
390
+ post_install_message:
391
+ rdoc_options:
392
+ - -t
393
+ - ! 'Unicorn: Rack HTTP server for fast clients and Unix'
394
+ - -W
395
+ - http://bogomips.org/unicorn.git/tree/%s
396
+ require_paths:
397
+ - lib
398
+ required_ruby_version: !ruby/object:Gem::Requirement
399
+ none: false
400
+ requirements:
401
+ - - ! '>='
402
+ - !ruby/object:Gem::Version
403
+ version: '0'
404
+ required_rubygems_version: !ruby/object:Gem::Requirement
405
+ none: false
406
+ requirements:
407
+ - - ! '>'
408
+ - !ruby/object:Gem::Version
409
+ version: 1.3.1
410
+ requirements: []
411
+ rubyforge_project: !binary |-
412
+ bW9uZ3JlbA==
413
+ rubygems_version: 1.8.17
414
+ signing_key:
415
+ specification_version: 3
416
+ summary: Rack HTTP server for fast clients and Unix
417
+ test_files:
418
+ - test/unit/test_configurator.rb
419
+ - test/unit/test_http_parser.rb
420
+ - test/unit/test_http_parser_ng.rb
421
+ - test/unit/test_http_parser_xftrust.rb
422
+ - test/unit/test_request.rb
423
+ - test/unit/test_response.rb
424
+ - test/unit/test_server.rb
425
+ - test/unit/test_sni_hostnames.rb
426
+ - test/unit/test_util.rb