unicorn-fork 6.1.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 (145) hide show
  1. checksums.yaml +7 -0
  2. data/.CHANGELOG.old +25 -0
  3. data/.document +28 -0
  4. data/.gitattributes +5 -0
  5. data/.gitignore +25 -0
  6. data/.mailmap +26 -0
  7. data/.manifest +144 -0
  8. data/.olddoc.yml +25 -0
  9. data/Application_Timeouts +77 -0
  10. data/CONTRIBUTORS +39 -0
  11. data/COPYING +674 -0
  12. data/DESIGN +99 -0
  13. data/Documentation/.gitignore +3 -0
  14. data/Documentation/unicorn.1 +222 -0
  15. data/Documentation/unicorn_rails.1 +207 -0
  16. data/FAQ +70 -0
  17. data/GIT-VERSION-FILE +1 -0
  18. data/GIT-VERSION-GEN +39 -0
  19. data/GNUmakefile +318 -0
  20. data/HACKING +117 -0
  21. data/ISSUES +102 -0
  22. data/KNOWN_ISSUES +79 -0
  23. data/LICENSE +67 -0
  24. data/Links +58 -0
  25. data/PHILOSOPHY +139 -0
  26. data/README +165 -0
  27. data/Rakefile +17 -0
  28. data/SIGNALS +123 -0
  29. data/Sandbox +104 -0
  30. data/TODO +1 -0
  31. data/TUNING +119 -0
  32. data/archive/.gitignore +3 -0
  33. data/archive/slrnpull.conf +4 -0
  34. data/bin/unicorn +129 -0
  35. data/bin/unicorn_rails +210 -0
  36. data/examples/big_app_gc.rb +3 -0
  37. data/examples/echo.ru +27 -0
  38. data/examples/init.sh +102 -0
  39. data/examples/logger_mp_safe.rb +26 -0
  40. data/examples/logrotate.conf +44 -0
  41. data/examples/nginx.conf +156 -0
  42. data/examples/unicorn.conf.minimal.rb +14 -0
  43. data/examples/unicorn.conf.rb +111 -0
  44. data/examples/unicorn.socket +11 -0
  45. data/examples/unicorn@.service +40 -0
  46. data/ext/unicorn_http/CFLAGS +13 -0
  47. data/ext/unicorn_http/c_util.h +115 -0
  48. data/ext/unicorn_http/common_field_optimization.h +128 -0
  49. data/ext/unicorn_http/epollexclusive.h +128 -0
  50. data/ext/unicorn_http/ext_help.h +38 -0
  51. data/ext/unicorn_http/extconf.rb +40 -0
  52. data/ext/unicorn_http/global_variables.h +97 -0
  53. data/ext/unicorn_http/httpdate.c +91 -0
  54. data/ext/unicorn_http/unicorn_http.c +4348 -0
  55. data/ext/unicorn_http/unicorn_http.rl +1054 -0
  56. data/ext/unicorn_http/unicorn_http_common.rl +76 -0
  57. data/lib/unicorn/app/old_rails/static.rb +60 -0
  58. data/lib/unicorn/app/old_rails.rb +36 -0
  59. data/lib/unicorn/cgi_wrapper.rb +148 -0
  60. data/lib/unicorn/configurator.rb +749 -0
  61. data/lib/unicorn/const.rb +22 -0
  62. data/lib/unicorn/http_request.rb +180 -0
  63. data/lib/unicorn/http_response.rb +95 -0
  64. data/lib/unicorn/http_server.rb +860 -0
  65. data/lib/unicorn/launcher.rb +63 -0
  66. data/lib/unicorn/oob_gc.rb +82 -0
  67. data/lib/unicorn/preread_input.rb +34 -0
  68. data/lib/unicorn/select_waiter.rb +7 -0
  69. data/lib/unicorn/socket_helper.rb +186 -0
  70. data/lib/unicorn/stream_input.rb +152 -0
  71. data/lib/unicorn/tee_input.rb +132 -0
  72. data/lib/unicorn/tmpio.rb +34 -0
  73. data/lib/unicorn/util.rb +91 -0
  74. data/lib/unicorn/version.rb +1 -0
  75. data/lib/unicorn/worker.rb +166 -0
  76. data/lib/unicorn.rb +137 -0
  77. data/man/man1/unicorn.1 +222 -0
  78. data/man/man1/unicorn_rails.1 +207 -0
  79. data/setup.rb +1587 -0
  80. data/t/.gitignore +4 -0
  81. data/t/GNUmakefile +5 -0
  82. data/t/README +49 -0
  83. data/t/active-unix-socket.t +110 -0
  84. data/t/back-out-of-upgrade.t +44 -0
  85. data/t/bin/unused_listen +40 -0
  86. data/t/client_body_buffer_size.ru +15 -0
  87. data/t/client_body_buffer_size.t +79 -0
  88. data/t/detach.ru +12 -0
  89. data/t/env.ru +4 -0
  90. data/t/fails-rack-lint.ru +6 -0
  91. data/t/heartbeat-timeout.ru +13 -0
  92. data/t/heartbeat-timeout.t +60 -0
  93. data/t/integration.ru +129 -0
  94. data/t/integration.t +509 -0
  95. data/t/lib.perl +309 -0
  96. data/t/listener_names.ru +5 -0
  97. data/t/my-tap-lib.sh +201 -0
  98. data/t/oob_gc.ru +18 -0
  99. data/t/oob_gc_path.ru +18 -0
  100. data/t/pid.ru +4 -0
  101. data/t/preread_input.ru +23 -0
  102. data/t/reload-bad-config.t +49 -0
  103. data/t/reopen-logs.ru +14 -0
  104. data/t/reopen-logs.t +36 -0
  105. data/t/t0010-reap-logging.sh +55 -0
  106. data/t/t0012-reload-empty-config.sh +86 -0
  107. data/t/t0013-rewindable-input-false.sh +24 -0
  108. data/t/t0013.ru +13 -0
  109. data/t/t0014-rewindable-input-true.sh +24 -0
  110. data/t/t0014.ru +13 -0
  111. data/t/t0015-configurator-internals.sh +25 -0
  112. data/t/t0020-at_exit-handler.sh +49 -0
  113. data/t/t0021-process_detach.sh +29 -0
  114. data/t/t0022-listener_names-preload_app.sh +32 -0
  115. data/t/t0300-no-default-middleware.sh +20 -0
  116. data/t/t0301-no-default-middleware-ignored-in-config.sh +25 -0
  117. data/t/t0301.ru +14 -0
  118. data/t/t9001-oob_gc.sh +47 -0
  119. data/t/t9002-oob_gc-path.sh +75 -0
  120. data/t/test-lib.sh +125 -0
  121. data/t/winch_ttin.t +64 -0
  122. data/t/working_directory.t +86 -0
  123. data/test/aggregate.rb +16 -0
  124. data/test/benchmark/README +60 -0
  125. data/test/benchmark/dd.ru +19 -0
  126. data/test/benchmark/ddstream.ru +51 -0
  127. data/test/benchmark/readinput.ru +41 -0
  128. data/test/benchmark/stack.ru +9 -0
  129. data/test/benchmark/uconnect.perl +66 -0
  130. data/test/exec/README +5 -0
  131. data/test/exec/test_exec.rb +1030 -0
  132. data/test/test_helper.rb +307 -0
  133. data/test/unit/test_configurator.rb +176 -0
  134. data/test/unit/test_droplet.rb +29 -0
  135. data/test/unit/test_http_parser.rb +885 -0
  136. data/test/unit/test_http_parser_ng.rb +715 -0
  137. data/test/unit/test_server.rb +245 -0
  138. data/test/unit/test_signals.rb +189 -0
  139. data/test/unit/test_socket_helper.rb +160 -0
  140. data/test/unit/test_stream_input.rb +211 -0
  141. data/test/unit/test_tee_input.rb +304 -0
  142. data/test/unit/test_util.rb +132 -0
  143. data/test/unit/test_waiter.rb +35 -0
  144. data/unicorn.gemspec +49 -0
  145. metadata +266 -0
data/unicorn.gemspec ADDED
@@ -0,0 +1,49 @@
1
+ # -*- encoding: binary -*-
2
+ # frozen_string_literal: false
3
+ manifest = File.exist?('.manifest') ?
4
+ IO.readlines('.manifest').map!(&:chomp!) : `git ls-files`.split("\n")
5
+
6
+ # don't bother with tests that fork, not worth our time to get working
7
+ # with `gem check -t` ... (of course we care for them when testing with
8
+ # GNU make when they can run in parallel)
9
+ test_files = manifest.grep(%r{\Atest/unit/test_.*\.rb\z}).map do |f|
10
+ File.readlines(f).grep(/\bfork\b/).empty? ? f : nil
11
+ end.compact
12
+
13
+ Gem::Specification.new do |s|
14
+ s.name = %q{unicorn-fork}
15
+ s.version = (ENV['VERSION'] || '6.1.1').dup
16
+ s.authors = ['unicorn hackers']
17
+ s.summary = 'Rack HTTP server for fast clients and Unix'
18
+ s.description = File.read('README').split("\n\n")[1]
19
+ s.email = %q{unicorn-public@yhbt.net}
20
+ s.executables = %w(unicorn unicorn_rails)
21
+ s.extensions = %w(ext/unicorn_http/extconf.rb)
22
+ s.extra_rdoc_files = IO.readlines('.document').map!(&:chomp!).keep_if do |f|
23
+ File.exist?(f)
24
+ end
25
+ s.files = manifest
26
+ s.homepage = 'https://yhbt.net/unicorn/'
27
+ s.test_files = test_files
28
+
29
+ # 2.5.0 is the minimum supported version. We don't specify
30
+ # a maximum version to make it easier to test pre-releases,
31
+ # but we do warn users if they install unicorn on an untested
32
+ # version in extconf.rb
33
+ s.required_ruby_version = ">= 2.5.0"
34
+
35
+ # We do not have a hard dependency on rack, it's possible to load
36
+ # things which respond to #call. HTTP status lines in responses
37
+ # won't have descriptive text, only the numeric status.
38
+ s.add_development_dependency(%q<rack>)
39
+
40
+ s.add_dependency(%q<raindrops>, '~> 0.7')
41
+
42
+ s.add_development_dependency('test-unit', '~> 3.0')
43
+
44
+ # Note: To avoid ambiguity, we intentionally avoid the SPDX-compatible
45
+ # 'Ruby' here since Ruby 1.9.3 switched to BSD-2-Clause, but we
46
+ # inherited our license from Mongrel when Ruby was at 1.8.
47
+ # We cannot automatically switch licenses when Ruby changes.
48
+ s.licenses = ['GPL-2.0+', 'Ruby-1.8']
49
+ end
metadata ADDED
@@ -0,0 +1,266 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: unicorn-fork
3
+ version: !ruby/object:Gem::Version
4
+ version: 6.1.1
5
+ platform: ruby
6
+ authors:
7
+ - unicorn hackers
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rack
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: raindrops
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.7'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.7'
40
+ - !ruby/object:Gem::Dependency
41
+ name: test-unit
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ description: |-
55
+ unicorn is an HTTP server for Rack applications that has done
56
+ decades of damage to the entire Ruby ecosystem due to its ability
57
+ to tolerate (and thus encourage) bad code. It is only designed
58
+ to handle fast clients on low-latency, high-bandwidth connections
59
+ and take advantage of features in Unix/Unix-like kernels.
60
+ Slow clients must only be served by placing a reverse proxy capable of
61
+ fully buffering both the the request and response in between unicorn
62
+ and slow clients.
63
+ email: unicorn-public@yhbt.net
64
+ executables:
65
+ - unicorn
66
+ - unicorn_rails
67
+ extensions:
68
+ - ext/unicorn_http/extconf.rb
69
+ extra_rdoc_files:
70
+ - Application_Timeouts
71
+ - CONTRIBUTORS
72
+ - DESIGN
73
+ - FAQ
74
+ - HACKING
75
+ - ISSUES
76
+ - KNOWN_ISSUES
77
+ - LICENSE
78
+ - Links
79
+ - PHILOSOPHY
80
+ - README
81
+ - SIGNALS
82
+ - Sandbox
83
+ - TODO
84
+ - TUNING
85
+ - lib/unicorn.rb
86
+ - lib/unicorn/configurator.rb
87
+ - lib/unicorn/http_server.rb
88
+ - lib/unicorn/oob_gc.rb
89
+ - lib/unicorn/preread_input.rb
90
+ - lib/unicorn/stream_input.rb
91
+ - lib/unicorn/tee_input.rb
92
+ - lib/unicorn/util.rb
93
+ - lib/unicorn/worker.rb
94
+ files:
95
+ - ".CHANGELOG.old"
96
+ - ".document"
97
+ - ".gitattributes"
98
+ - ".gitignore"
99
+ - ".mailmap"
100
+ - ".manifest"
101
+ - ".olddoc.yml"
102
+ - Application_Timeouts
103
+ - CONTRIBUTORS
104
+ - COPYING
105
+ - DESIGN
106
+ - Documentation/.gitignore
107
+ - Documentation/unicorn.1
108
+ - Documentation/unicorn_rails.1
109
+ - FAQ
110
+ - GIT-VERSION-FILE
111
+ - GIT-VERSION-GEN
112
+ - GNUmakefile
113
+ - HACKING
114
+ - ISSUES
115
+ - KNOWN_ISSUES
116
+ - LICENSE
117
+ - Links
118
+ - PHILOSOPHY
119
+ - README
120
+ - Rakefile
121
+ - SIGNALS
122
+ - Sandbox
123
+ - TODO
124
+ - TUNING
125
+ - archive/.gitignore
126
+ - archive/slrnpull.conf
127
+ - bin/unicorn
128
+ - bin/unicorn_rails
129
+ - examples/big_app_gc.rb
130
+ - examples/echo.ru
131
+ - examples/init.sh
132
+ - examples/logger_mp_safe.rb
133
+ - examples/logrotate.conf
134
+ - examples/nginx.conf
135
+ - examples/unicorn.conf.minimal.rb
136
+ - examples/unicorn.conf.rb
137
+ - examples/unicorn.socket
138
+ - examples/unicorn@.service
139
+ - ext/unicorn_http/CFLAGS
140
+ - ext/unicorn_http/c_util.h
141
+ - ext/unicorn_http/common_field_optimization.h
142
+ - ext/unicorn_http/epollexclusive.h
143
+ - ext/unicorn_http/ext_help.h
144
+ - ext/unicorn_http/extconf.rb
145
+ - ext/unicorn_http/global_variables.h
146
+ - ext/unicorn_http/httpdate.c
147
+ - ext/unicorn_http/unicorn_http.c
148
+ - ext/unicorn_http/unicorn_http.rl
149
+ - ext/unicorn_http/unicorn_http_common.rl
150
+ - lib/unicorn.rb
151
+ - lib/unicorn/app/old_rails.rb
152
+ - lib/unicorn/app/old_rails/static.rb
153
+ - lib/unicorn/cgi_wrapper.rb
154
+ - lib/unicorn/configurator.rb
155
+ - lib/unicorn/const.rb
156
+ - lib/unicorn/http_request.rb
157
+ - lib/unicorn/http_response.rb
158
+ - lib/unicorn/http_server.rb
159
+ - lib/unicorn/launcher.rb
160
+ - lib/unicorn/oob_gc.rb
161
+ - lib/unicorn/preread_input.rb
162
+ - lib/unicorn/select_waiter.rb
163
+ - lib/unicorn/socket_helper.rb
164
+ - lib/unicorn/stream_input.rb
165
+ - lib/unicorn/tee_input.rb
166
+ - lib/unicorn/tmpio.rb
167
+ - lib/unicorn/util.rb
168
+ - lib/unicorn/version.rb
169
+ - lib/unicorn/worker.rb
170
+ - man/man1/unicorn.1
171
+ - man/man1/unicorn_rails.1
172
+ - setup.rb
173
+ - t/.gitignore
174
+ - t/GNUmakefile
175
+ - t/README
176
+ - t/active-unix-socket.t
177
+ - t/back-out-of-upgrade.t
178
+ - t/bin/unused_listen
179
+ - t/client_body_buffer_size.ru
180
+ - t/client_body_buffer_size.t
181
+ - t/detach.ru
182
+ - t/env.ru
183
+ - t/fails-rack-lint.ru
184
+ - t/heartbeat-timeout.ru
185
+ - t/heartbeat-timeout.t
186
+ - t/integration.ru
187
+ - t/integration.t
188
+ - t/lib.perl
189
+ - t/listener_names.ru
190
+ - t/my-tap-lib.sh
191
+ - t/oob_gc.ru
192
+ - t/oob_gc_path.ru
193
+ - t/pid.ru
194
+ - t/preread_input.ru
195
+ - t/reload-bad-config.t
196
+ - t/reopen-logs.ru
197
+ - t/reopen-logs.t
198
+ - t/t0010-reap-logging.sh
199
+ - t/t0012-reload-empty-config.sh
200
+ - t/t0013-rewindable-input-false.sh
201
+ - t/t0013.ru
202
+ - t/t0014-rewindable-input-true.sh
203
+ - t/t0014.ru
204
+ - t/t0015-configurator-internals.sh
205
+ - t/t0020-at_exit-handler.sh
206
+ - t/t0021-process_detach.sh
207
+ - t/t0022-listener_names-preload_app.sh
208
+ - t/t0300-no-default-middleware.sh
209
+ - t/t0301-no-default-middleware-ignored-in-config.sh
210
+ - t/t0301.ru
211
+ - t/t9001-oob_gc.sh
212
+ - t/t9002-oob_gc-path.sh
213
+ - t/test-lib.sh
214
+ - t/winch_ttin.t
215
+ - t/working_directory.t
216
+ - test/aggregate.rb
217
+ - test/benchmark/README
218
+ - test/benchmark/dd.ru
219
+ - test/benchmark/ddstream.ru
220
+ - test/benchmark/readinput.ru
221
+ - test/benchmark/stack.ru
222
+ - test/benchmark/uconnect.perl
223
+ - test/exec/README
224
+ - test/exec/test_exec.rb
225
+ - test/test_helper.rb
226
+ - test/unit/test_configurator.rb
227
+ - test/unit/test_droplet.rb
228
+ - test/unit/test_http_parser.rb
229
+ - test/unit/test_http_parser_ng.rb
230
+ - test/unit/test_server.rb
231
+ - test/unit/test_signals.rb
232
+ - test/unit/test_socket_helper.rb
233
+ - test/unit/test_stream_input.rb
234
+ - test/unit/test_tee_input.rb
235
+ - test/unit/test_util.rb
236
+ - test/unit/test_waiter.rb
237
+ - unicorn.gemspec
238
+ homepage: https://yhbt.net/unicorn/
239
+ licenses:
240
+ - GPL-2.0+
241
+ - Ruby-1.8
242
+ metadata: {}
243
+ rdoc_options: []
244
+ require_paths:
245
+ - lib
246
+ required_ruby_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: 2.5.0
251
+ required_rubygems_version: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ requirements: []
257
+ rubygems_version: 3.6.8
258
+ specification_version: 4
259
+ summary: Rack HTTP server for fast clients and Unix
260
+ test_files:
261
+ - test/unit/test_configurator.rb
262
+ - test/unit/test_http_parser.rb
263
+ - test/unit/test_http_parser_ng.rb
264
+ - test/unit/test_server.rb
265
+ - test/unit/test_util.rb
266
+ - test/unit/test_waiter.rb