boourns-unicorn 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) 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 +267 -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 +149 -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 +83 -0
  58. data/lib/unicorn/http_response.rb +45 -0
  59. data/lib/unicorn/http_server.rb +755 -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 +69 -0
  71. data/lib/unicorn/worker.rb +88 -0
  72. data/local.mk.sample +59 -0
  73. data/script/isolate_for_tests +32 -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/listener_names.ru +4 -0
  87. data/t/my-tap-lib.sh +201 -0
  88. data/t/oob_gc.ru +21 -0
  89. data/t/oob_gc_path.ru +21 -0
  90. data/t/pid.ru +3 -0
  91. data/t/preread_input.ru +17 -0
  92. data/t/rack-input-tests.ru +21 -0
  93. data/t/sslgen.sh +71 -0
  94. data/t/t0000-http-basic.sh +50 -0
  95. data/t/t0001-reload-bad-config.sh +53 -0
  96. data/t/t0002-config-conflict.sh +49 -0
  97. data/t/t0002-parser-error.sh +94 -0
  98. data/t/t0003-working_directory.sh +51 -0
  99. data/t/t0004-heartbeat-timeout.sh +69 -0
  100. data/t/t0004-working_directory_broken.sh +24 -0
  101. data/t/t0005-working_directory_app.rb.sh +37 -0
  102. data/t/t0006-reopen-logs.sh +83 -0
  103. data/t/t0006.ru +13 -0
  104. data/t/t0007-working_directory_no_embed_cli.sh +44 -0
  105. data/t/t0008-back_out_of_upgrade.sh +110 -0
  106. data/t/t0009-broken-app.sh +56 -0
  107. data/t/t0009-winch_ttin.sh +59 -0
  108. data/t/t0010-reap-logging.sh +55 -0
  109. data/t/t0011-active-unix-socket.sh +79 -0
  110. data/t/t0012-reload-empty-config.sh +85 -0
  111. data/t/t0013-rewindable-input-false.sh +24 -0
  112. data/t/t0013.ru +12 -0
  113. data/t/t0014-rewindable-input-true.sh +24 -0
  114. data/t/t0014.ru +12 -0
  115. data/t/t0015-configurator-internals.sh +25 -0
  116. data/t/t0016-trust-x-forwarded-false.sh +30 -0
  117. data/t/t0017-trust-x-forwarded-true.sh +30 -0
  118. data/t/t0018-write-on-close.sh +23 -0
  119. data/t/t0019-max_header_len.sh +49 -0
  120. data/t/t0020-at_exit-handler.sh +49 -0
  121. data/t/t0021-process_detach.sh +29 -0
  122. data/t/t0022-listener_names-preload_app.sh +32 -0
  123. data/t/t0100-rack-input-tests.sh +124 -0
  124. data/t/t0116-client_body_buffer_size.sh +80 -0
  125. data/t/t0116.ru +16 -0
  126. data/t/t0600-https-server-basic.sh +48 -0
  127. data/t/t9000-preread-input.sh +48 -0
  128. data/t/t9001-oob_gc.sh +47 -0
  129. data/t/t9002-oob_gc-path.sh +75 -0
  130. data/t/test-lib.sh +113 -0
  131. data/t/write-on-close.ru +11 -0
  132. data/test/aggregate.rb +15 -0
  133. data/test/benchmark/README +50 -0
  134. data/test/benchmark/dd.ru +18 -0
  135. data/test/benchmark/stack.ru +8 -0
  136. data/test/exec/README +5 -0
  137. data/test/exec/test_exec.rb +1041 -0
  138. data/test/test_helper.rb +300 -0
  139. data/test/unit/test_configurator.rb +158 -0
  140. data/test/unit/test_droplet.rb +28 -0
  141. data/test/unit/test_http_parser.rb +860 -0
  142. data/test/unit/test_http_parser_ng.rb +716 -0
  143. data/test/unit/test_http_parser_xftrust.rb +38 -0
  144. data/test/unit/test_request.rb +197 -0
  145. data/test/unit/test_response.rb +99 -0
  146. data/test/unit/test_server.rb +289 -0
  147. data/test/unit/test_signals.rb +207 -0
  148. data/test/unit/test_sni_hostnames.rb +47 -0
  149. data/test/unit/test_socket_helper.rb +192 -0
  150. data/test/unit/test_stream_input.rb +204 -0
  151. data/test/unit/test_tee_input.rb +296 -0
  152. data/test/unit/test_upload.rb +306 -0
  153. data/test/unit/test_util.rb +99 -0
  154. data/unicorn.gemspec +44 -0
  155. metadata +333 -0
@@ -0,0 +1,99 @@
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
+ tmp.close!
22
+ 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
+ tmp.close!
47
+ to.close!
48
+ 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
+ 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
+ tmp.close!
98
+ end if STDIN.respond_to?(:external_encoding)
99
+ end
data/unicorn.gemspec ADDED
@@ -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{boourns-unicorn}
17
+ s.version = "4.4.1"
18
+ s.authors = ["#{name} hackers"]
19
+ s.summary = summary
20
+ s.date = Time.now.utc.strftime('%Y-%m-%d')
21
+ s.description = readme_description
22
+ s.email = %q{mongrel-unicorn@rubyforge.org}
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,333 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: !binary |-
3
+ Ym9vdXJucy11bmljb3Ju
4
+ version: !ruby/object:Gem::Version
5
+ version: !binary |-
6
+ NC40LjE=
7
+ prerelease:
8
+ platform: ruby
9
+ authors:
10
+ - Unicorn hackers
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2012-10-30 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: !binary |-
18
+ cmFjaw==
19
+ requirement: &70183526665980 !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: *70183526665980
28
+ - !ruby/object:Gem::Dependency
29
+ name: !binary |-
30
+ a2dpbw==
31
+ requirement: &70183526665440 !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: *70183526665440
42
+ - !ruby/object:Gem::Dependency
43
+ name: !binary |-
44
+ cmFpbmRyb3Bz
45
+ requirement: &70183526664940 !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: *70183526664940
56
+ - !ruby/object:Gem::Dependency
57
+ name: !binary |-
58
+ aXNvbGF0ZQ==
59
+ requirement: &70183526664480 !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: *70183526664480
70
+ - !ruby/object:Gem::Dependency
71
+ name: !binary |-
72
+ d3Jvbmdkb2M=
73
+ requirement: &70183526664020 !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: *70183526664020
84
+ description: ! '\Unicorn is an HTTP server for Rack applications designed to only
85
+ serve
86
+
87
+ fast clients on low-latency, high-bandwidth connections and take
88
+
89
+ advantage of features in Unix/Unix-like kernels. Slow clients should
90
+
91
+ only be served by placing a reverse proxy capable of fully buffering
92
+
93
+ both the the request and response in between \Unicorn and slow clients.'
94
+ email: !binary |-
95
+ bW9uZ3JlbC11bmljb3JuQHJ1Ynlmb3JnZS5vcmc=
96
+ executables:
97
+ - !binary |-
98
+ dW5pY29ybg==
99
+ - !binary |-
100
+ dW5pY29ybl9yYWlscw==
101
+ extensions:
102
+ - !binary |-
103
+ ZXh0L3VuaWNvcm5faHR0cC9leHRjb25mLnJi
104
+ extra_rdoc_files:
105
+ - FAQ
106
+ - README
107
+ - TUNING
108
+ - PHILOSOPHY
109
+ - HACKING
110
+ - DESIGN
111
+ - CONTRIBUTORS
112
+ - LICENSE
113
+ - SIGNALS
114
+ - KNOWN_ISSUES
115
+ - TODO
116
+ - NEWS
117
+ - ChangeLog
118
+ - LATEST
119
+ - lib/unicorn.rb
120
+ - lib/unicorn/configurator.rb
121
+ - lib/unicorn/http_server.rb
122
+ - lib/unicorn/preread_input.rb
123
+ - lib/unicorn/stream_input.rb
124
+ - lib/unicorn/tee_input.rb
125
+ - lib/unicorn/util.rb
126
+ - lib/unicorn/oob_gc.rb
127
+ - lib/unicorn/worker.rb
128
+ - ISSUES
129
+ - Sandbox
130
+ - Links
131
+ - Application_Timeouts
132
+ files:
133
+ - .CHANGELOG.old
134
+ - .document
135
+ - .gitignore
136
+ - .mailmap
137
+ - .manifest
138
+ - .wrongdoc.yml
139
+ - Application_Timeouts
140
+ - CONTRIBUTORS
141
+ - COPYING
142
+ - ChangeLog
143
+ - DESIGN
144
+ - Documentation/.gitignore
145
+ - Documentation/GNUmakefile
146
+ - Documentation/unicorn.1.txt
147
+ - Documentation/unicorn_rails.1.txt
148
+ - FAQ
149
+ - GIT-VERSION-FILE
150
+ - GIT-VERSION-GEN
151
+ - GNUmakefile
152
+ - HACKING
153
+ - ISSUES
154
+ - KNOWN_ISSUES
155
+ - LATEST
156
+ - LICENSE
157
+ - Links
158
+ - NEWS
159
+ - PHILOSOPHY
160
+ - README
161
+ - Rakefile
162
+ - SIGNALS
163
+ - Sandbox
164
+ - TODO
165
+ - TUNING
166
+ - bin/unicorn
167
+ - bin/unicorn_rails
168
+ - examples/big_app_gc.rb
169
+ - examples/echo.ru
170
+ - examples/git.ru
171
+ - examples/init.sh
172
+ - examples/logger_mp_safe.rb
173
+ - examples/logrotate.conf
174
+ - examples/nginx.conf
175
+ - examples/unicorn.conf.minimal.rb
176
+ - examples/unicorn.conf.rb
177
+ - ext/unicorn_http/CFLAGS
178
+ - ext/unicorn_http/c_util.h
179
+ - ext/unicorn_http/common_field_optimization.h
180
+ - ext/unicorn_http/ext_help.h
181
+ - ext/unicorn_http/extconf.rb
182
+ - ext/unicorn_http/global_variables.h
183
+ - ext/unicorn_http/httpdate.c
184
+ - ext/unicorn_http/unicorn_http.c
185
+ - ext/unicorn_http/unicorn_http.rl
186
+ - ext/unicorn_http/unicorn_http_common.rl
187
+ - lib/unicorn.rb
188
+ - lib/unicorn/app/exec_cgi.rb
189
+ - lib/unicorn/app/inetd.rb
190
+ - lib/unicorn/app/old_rails.rb
191
+ - lib/unicorn/app/old_rails/static.rb
192
+ - lib/unicorn/cgi_wrapper.rb
193
+ - lib/unicorn/configurator.rb
194
+ - lib/unicorn/const.rb
195
+ - lib/unicorn/http_request.rb
196
+ - lib/unicorn/http_response.rb
197
+ - lib/unicorn/http_server.rb
198
+ - lib/unicorn/launcher.rb
199
+ - lib/unicorn/oob_gc.rb
200
+ - lib/unicorn/preread_input.rb
201
+ - lib/unicorn/socket_helper.rb
202
+ - lib/unicorn/ssl_client.rb
203
+ - lib/unicorn/ssl_configurator.rb
204
+ - lib/unicorn/ssl_server.rb
205
+ - lib/unicorn/stream_input.rb
206
+ - lib/unicorn/tee_input.rb
207
+ - lib/unicorn/tmpio.rb
208
+ - lib/unicorn/util.rb
209
+ - lib/unicorn/worker.rb
210
+ - local.mk.sample
211
+ - man/man1/unicorn.1
212
+ - man/man1/unicorn_rails.1
213
+ - script/isolate_for_tests
214
+ - setup.rb
215
+ - t/.gitignore
216
+ - t/GNUmakefile
217
+ - t/README
218
+ - t/bin/content-md5-put
219
+ - t/bin/sha1sum.rb
220
+ - t/bin/unused_listen
221
+ - t/bin/utee
222
+ - t/broken-app.ru
223
+ - t/detach.ru
224
+ - t/env.ru
225
+ - t/heartbeat-timeout.ru
226
+ - t/listener_names.ru
227
+ - t/my-tap-lib.sh
228
+ - t/oob_gc.ru
229
+ - t/oob_gc_path.ru
230
+ - t/pid.ru
231
+ - t/preread_input.ru
232
+ - t/rack-input-tests.ru
233
+ - t/sslgen.sh
234
+ - t/t0000-http-basic.sh
235
+ - t/t0001-reload-bad-config.sh
236
+ - t/t0002-config-conflict.sh
237
+ - t/t0002-parser-error.sh
238
+ - t/t0003-working_directory.sh
239
+ - t/t0004-heartbeat-timeout.sh
240
+ - t/t0004-working_directory_broken.sh
241
+ - t/t0005-working_directory_app.rb.sh
242
+ - t/t0006-reopen-logs.sh
243
+ - t/t0006.ru
244
+ - t/t0007-working_directory_no_embed_cli.sh
245
+ - t/t0008-back_out_of_upgrade.sh
246
+ - t/t0009-broken-app.sh
247
+ - t/t0009-winch_ttin.sh
248
+ - t/t0010-reap-logging.sh
249
+ - t/t0011-active-unix-socket.sh
250
+ - t/t0012-reload-empty-config.sh
251
+ - t/t0013-rewindable-input-false.sh
252
+ - t/t0013.ru
253
+ - t/t0014-rewindable-input-true.sh
254
+ - t/t0014.ru
255
+ - t/t0015-configurator-internals.sh
256
+ - t/t0016-trust-x-forwarded-false.sh
257
+ - t/t0017-trust-x-forwarded-true.sh
258
+ - t/t0018-write-on-close.sh
259
+ - t/t0019-max_header_len.sh
260
+ - t/t0020-at_exit-handler.sh
261
+ - t/t0021-process_detach.sh
262
+ - t/t0022-listener_names-preload_app.sh
263
+ - t/t0100-rack-input-tests.sh
264
+ - t/t0116-client_body_buffer_size.sh
265
+ - t/t0116.ru
266
+ - t/t0600-https-server-basic.sh
267
+ - t/t9000-preread-input.sh
268
+ - t/t9001-oob_gc.sh
269
+ - t/t9002-oob_gc-path.sh
270
+ - t/test-lib.sh
271
+ - t/write-on-close.ru
272
+ - test/aggregate.rb
273
+ - test/benchmark/README
274
+ - test/benchmark/dd.ru
275
+ - test/benchmark/stack.ru
276
+ - test/exec/README
277
+ - test/exec/test_exec.rb
278
+ - test/test_helper.rb
279
+ - test/unit/test_configurator.rb
280
+ - test/unit/test_droplet.rb
281
+ - test/unit/test_http_parser.rb
282
+ - test/unit/test_http_parser_ng.rb
283
+ - test/unit/test_http_parser_xftrust.rb
284
+ - test/unit/test_request.rb
285
+ - test/unit/test_response.rb
286
+ - test/unit/test_server.rb
287
+ - test/unit/test_signals.rb
288
+ - test/unit/test_sni_hostnames.rb
289
+ - test/unit/test_socket_helper.rb
290
+ - test/unit/test_stream_input.rb
291
+ - test/unit/test_tee_input.rb
292
+ - test/unit/test_upload.rb
293
+ - test/unit/test_util.rb
294
+ - unicorn.gemspec
295
+ homepage: http://unicorn.bogomips.org/
296
+ licenses: []
297
+ post_install_message:
298
+ rdoc_options:
299
+ - -t
300
+ - ! 'Unicorn: Rack HTTP server for fast clients and Unix'
301
+ - -W
302
+ - http://bogomips.org/unicorn.git/tree/%s
303
+ require_paths:
304
+ - lib
305
+ required_ruby_version: !ruby/object:Gem::Requirement
306
+ none: false
307
+ requirements:
308
+ - - ! '>='
309
+ - !ruby/object:Gem::Version
310
+ version: '0'
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
312
+ none: false
313
+ requirements:
314
+ - - ! '>='
315
+ - !ruby/object:Gem::Version
316
+ version: '0'
317
+ requirements: []
318
+ rubyforge_project: !binary |-
319
+ bW9uZ3JlbA==
320
+ rubygems_version: 1.8.11
321
+ signing_key:
322
+ specification_version: 3
323
+ summary: Rack HTTP server for fast clients and Unix
324
+ test_files:
325
+ - test/unit/test_configurator.rb
326
+ - test/unit/test_http_parser.rb
327
+ - test/unit/test_http_parser_ng.rb
328
+ - test/unit/test_http_parser_xftrust.rb
329
+ - test/unit/test_request.rb
330
+ - test/unit/test_response.rb
331
+ - test/unit/test_server.rb
332
+ - test/unit/test_sni_hostnames.rb
333
+ - test/unit/test_util.rb