unicorn 4.8.0 → 6.1.0

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 (123) hide show
  1. checksums.yaml +7 -0
  2. data/.document +0 -1
  3. data/.gitattributes +5 -0
  4. data/.gitignore +2 -2
  5. data/.manifest +17 -21
  6. data/.olddoc.yml +25 -0
  7. data/Application_Timeouts +7 -7
  8. data/CONTRIBUTORS +6 -2
  9. data/DESIGN +2 -4
  10. data/Documentation/.gitignore +1 -3
  11. data/Documentation/unicorn.1 +222 -0
  12. data/Documentation/unicorn_rails.1 +207 -0
  13. data/FAQ +23 -6
  14. data/GIT-VERSION-FILE +1 -1
  15. data/GIT-VERSION-GEN +1 -1
  16. data/GNUmakefile +138 -92
  17. data/HACKING +10 -32
  18. data/ISSUES +80 -19
  19. data/KNOWN_ISSUES +18 -18
  20. data/LATEST +23 -27
  21. data/LICENSE +2 -2
  22. data/Links +24 -22
  23. data/NEWS +823 -0
  24. data/PHILOSOPHY +0 -6
  25. data/README +49 -48
  26. data/Rakefile +0 -44
  27. data/SIGNALS +2 -2
  28. data/Sandbox +11 -10
  29. data/TODO +0 -2
  30. data/TUNING +30 -9
  31. data/archive/.gitignore +3 -0
  32. data/archive/slrnpull.conf +4 -0
  33. data/bin/unicorn +4 -2
  34. data/bin/unicorn_rails +3 -3
  35. data/examples/big_app_gc.rb +1 -1
  36. data/examples/init.sh +36 -8
  37. data/examples/logrotate.conf +17 -2
  38. data/examples/nginx.conf +14 -14
  39. data/examples/unicorn.conf.minimal.rb +2 -2
  40. data/examples/unicorn.conf.rb +14 -6
  41. data/examples/unicorn.socket +11 -0
  42. data/examples/unicorn@.service +40 -0
  43. data/ext/unicorn_http/c_util.h +5 -13
  44. data/ext/unicorn_http/common_field_optimization.h +22 -5
  45. data/ext/unicorn_http/epollexclusive.h +124 -0
  46. data/ext/unicorn_http/ext_help.h +0 -44
  47. data/ext/unicorn_http/extconf.rb +32 -5
  48. data/ext/unicorn_http/global_variables.h +2 -2
  49. data/ext/unicorn_http/httpdate.c +3 -2
  50. data/ext/unicorn_http/unicorn_http.c +926 -638
  51. data/ext/unicorn_http/unicorn_http.rl +159 -170
  52. data/ext/unicorn_http/unicorn_http_common.rl +1 -1
  53. data/lib/unicorn/configurator.rb +110 -46
  54. data/lib/unicorn/const.rb +2 -25
  55. data/lib/unicorn/http_request.rb +110 -31
  56. data/lib/unicorn/http_response.rb +17 -31
  57. data/lib/unicorn/http_server.rb +272 -180
  58. data/lib/unicorn/launcher.rb +1 -1
  59. data/lib/unicorn/oob_gc.rb +16 -6
  60. data/lib/unicorn/select_waiter.rb +6 -0
  61. data/lib/unicorn/socket_helper.rb +58 -78
  62. data/lib/unicorn/stream_input.rb +8 -7
  63. data/lib/unicorn/tee_input.rb +16 -11
  64. data/lib/unicorn/tmpio.rb +10 -6
  65. data/lib/unicorn/util.rb +5 -4
  66. data/lib/unicorn/version.rb +1 -1
  67. data/lib/unicorn/worker.rb +36 -23
  68. data/lib/unicorn.rb +64 -44
  69. data/man/man1/unicorn.1 +124 -122
  70. data/man/man1/unicorn_rails.1 +113 -127
  71. data/t/.gitignore +0 -1
  72. data/t/GNUmakefile +3 -80
  73. data/t/README +4 -4
  74. data/t/t0002-parser-error.sh +3 -3
  75. data/t/t0011-active-unix-socket.sh +1 -1
  76. data/t/t0012-reload-empty-config.sh +2 -1
  77. data/t/t0301-no-default-middleware-ignored-in-config.sh +25 -0
  78. data/t/t0301.ru +13 -0
  79. data/t/test-lib.sh +4 -3
  80. data/test/benchmark/README +14 -4
  81. data/test/benchmark/ddstream.ru +50 -0
  82. data/test/benchmark/readinput.ru +40 -0
  83. data/test/benchmark/uconnect.perl +66 -0
  84. data/test/exec/test_exec.rb +74 -20
  85. data/test/test_helper.rb +42 -33
  86. data/test/unit/test_ccc.rb +91 -0
  87. data/test/unit/test_droplet.rb +1 -1
  88. data/test/unit/test_http_parser.rb +49 -19
  89. data/test/unit/test_http_parser_ng.rb +98 -115
  90. data/test/unit/test_request.rb +11 -11
  91. data/test/unit/test_response.rb +31 -19
  92. data/test/unit/test_server.rb +89 -15
  93. data/test/unit/test_signals.rb +9 -9
  94. data/test/unit/test_socket_helper.rb +16 -12
  95. data/test/unit/test_tee_input.rb +10 -0
  96. data/test/unit/test_upload.rb +10 -15
  97. data/test/unit/test_util.rb +32 -6
  98. data/test/unit/test_waiter.rb +34 -0
  99. data/unicorn.gemspec +28 -23
  100. data/unicorn_1 +1 -0
  101. data/unicorn_rails_1 +1 -0
  102. metadata +68 -134
  103. data/.wrongdoc.yml +0 -10
  104. data/ChangeLog +0 -4861
  105. data/Documentation/GNUmakefile +0 -30
  106. data/Documentation/unicorn.1.txt +0 -178
  107. data/Documentation/unicorn_rails.1.txt +0 -175
  108. data/examples/git.ru +0 -13
  109. data/lib/unicorn/app/exec_cgi.rb +0 -154
  110. data/lib/unicorn/app/inetd.rb +0 -109
  111. data/lib/unicorn/ssl_client.rb +0 -11
  112. data/lib/unicorn/ssl_configurator.rb +0 -104
  113. data/lib/unicorn/ssl_server.rb +0 -42
  114. data/local.mk.sample +0 -59
  115. data/script/isolate_for_tests +0 -32
  116. data/t/hijack.ru +0 -42
  117. data/t/sslgen.sh +0 -71
  118. data/t/t0016-trust-x-forwarded-false.sh +0 -30
  119. data/t/t0017-trust-x-forwarded-true.sh +0 -30
  120. data/t/t0200-rack-hijack.sh +0 -27
  121. data/t/t0600-https-server-basic.sh +0 -48
  122. data/test/unit/test_http_parser_xftrust.rb +0 -38
  123. data/test/unit/test_sni_hostnames.rb +0 -47
metadata CHANGED
@@ -1,138 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
- name: !binary |-
3
- dW5pY29ybg==
2
+ name: unicorn
4
3
  version: !ruby/object:Gem::Version
5
- version: 4.8.0
6
- prerelease:
4
+ version: 6.1.0
7
5
  platform: ruby
8
6
  authors:
9
- - Unicorn hackers
7
+ - unicorn hackers
10
8
  autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2014-01-11 00:00:00.000000000 Z
11
+ date: 2021-12-25 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
- name: !binary |-
17
- cmFjaw==
14
+ name: rack
18
15
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
16
  requirements:
21
- - - ! '>='
17
+ - - ">="
22
18
  - !ruby/object:Gem::Version
23
19
  version: '0'
24
- type: :runtime
20
+ type: :development
25
21
  prerelease: false
26
22
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
23
  requirements:
29
- - - ! '>='
24
+ - - ">="
30
25
  - !ruby/object:Gem::Version
31
26
  version: '0'
32
27
  - !ruby/object:Gem::Dependency
33
- name: !binary |-
34
- a2dpbw==
28
+ name: kgio
35
29
  requirement: !ruby/object:Gem::Requirement
36
- none: false
37
30
  requirements:
38
- - - !binary |-
39
- fj4=
31
+ - - "~>"
40
32
  - !ruby/object:Gem::Version
41
- version: !binary |-
42
- Mi42
33
+ version: '2.6'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
- none: false
47
37
  requirements:
48
- - - !binary |-
49
- fj4=
38
+ - - "~>"
50
39
  - !ruby/object:Gem::Version
51
- version: !binary |-
52
- Mi42
40
+ version: '2.6'
53
41
  - !ruby/object:Gem::Dependency
54
- name: !binary |-
55
- cmFpbmRyb3Bz
42
+ name: raindrops
56
43
  requirement: !ruby/object:Gem::Requirement
57
- none: false
58
44
  requirements:
59
- - - !binary |-
60
- fj4=
45
+ - - "~>"
61
46
  - !ruby/object:Gem::Version
62
- version: !binary |-
63
- MC43
47
+ version: '0.7'
64
48
  type: :runtime
65
49
  prerelease: false
66
50
  version_requirements: !ruby/object:Gem::Requirement
67
- none: false
68
51
  requirements:
69
- - - !binary |-
70
- fj4=
52
+ - - "~>"
71
53
  - !ruby/object:Gem::Version
72
- version: !binary |-
73
- MC43
54
+ version: '0.7'
74
55
  - !ruby/object:Gem::Dependency
75
- name: !binary |-
76
- aXNvbGF0ZQ==
56
+ name: test-unit
77
57
  requirement: !ruby/object:Gem::Requirement
78
- none: false
79
58
  requirements:
80
- - - !binary |-
81
- fj4=
59
+ - - "~>"
82
60
  - !ruby/object:Gem::Version
83
- version: !binary |-
84
- My4y
61
+ version: '3.0'
85
62
  type: :development
86
63
  prerelease: false
87
64
  version_requirements: !ruby/object:Gem::Requirement
88
- none: false
89
- requirements:
90
- - - !binary |-
91
- fj4=
92
- - !ruby/object:Gem::Version
93
- version: !binary |-
94
- My4y
95
- - !ruby/object:Gem::Dependency
96
- name: !binary |-
97
- d3Jvbmdkb2M=
98
- requirement: !ruby/object:Gem::Requirement
99
- none: false
100
65
  requirements:
101
- - - !binary |-
102
- fj4=
66
+ - - "~>"
103
67
  - !ruby/object:Gem::Version
104
- version: !binary |-
105
- MS42LjE=
106
- type: :development
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- none: false
110
- requirements:
111
- - - !binary |-
112
- fj4=
113
- - !ruby/object:Gem::Version
114
- version: !binary |-
115
- MS42LjE=
116
- description: ! '\Unicorn is an HTTP server for Rack applications designed to only
117
- serve
118
-
68
+ version: '3.0'
69
+ description: |-
70
+ unicorn is an HTTP server for Rack applications designed to only serve
119
71
  fast clients on low-latency, high-bandwidth connections and take
120
-
121
72
  advantage of features in Unix/Unix-like kernels. Slow clients should
122
-
123
73
  only be served by placing a reverse proxy capable of fully buffering
124
-
125
- both the the request and response in between \Unicorn and slow clients.'
126
- email: !binary |-
127
- bW9uZ3JlbC11bmljb3JuQHJ1Ynlmb3JnZS5vcmc=
74
+ both the the request and response in between unicorn and slow clients.
75
+ email: unicorn-public@yhbt.net
128
76
  executables:
129
- - !binary |-
130
- dW5pY29ybg==
131
- - !binary |-
132
- dW5pY29ybl9yYWlscw==
77
+ - unicorn
78
+ - unicorn_rails
133
79
  extensions:
134
- - !binary |-
135
- ZXh0L3VuaWNvcm5faHR0cC9leHRjb25mLnJi
80
+ - ext/unicorn_http/extconf.rb
136
81
  extra_rdoc_files:
137
82
  - FAQ
138
83
  - README
@@ -146,7 +91,6 @@ extra_rdoc_files:
146
91
  - KNOWN_ISSUES
147
92
  - TODO
148
93
  - NEWS
149
- - ChangeLog
150
94
  - LATEST
151
95
  - lib/unicorn.rb
152
96
  - lib/unicorn/configurator.rb
@@ -157,26 +101,27 @@ extra_rdoc_files:
157
101
  - lib/unicorn/util.rb
158
102
  - lib/unicorn/oob_gc.rb
159
103
  - lib/unicorn/worker.rb
104
+ - unicorn_1
105
+ - unicorn_rails_1
160
106
  - ISSUES
161
107
  - Sandbox
162
108
  - Links
163
109
  - Application_Timeouts
164
110
  files:
165
- - .CHANGELOG.old
166
- - .document
167
- - .gitignore
168
- - .mailmap
169
- - .manifest
170
- - .wrongdoc.yml
111
+ - ".CHANGELOG.old"
112
+ - ".document"
113
+ - ".gitattributes"
114
+ - ".gitignore"
115
+ - ".mailmap"
116
+ - ".manifest"
117
+ - ".olddoc.yml"
171
118
  - Application_Timeouts
172
119
  - CONTRIBUTORS
173
120
  - COPYING
174
- - ChangeLog
175
121
  - DESIGN
176
122
  - Documentation/.gitignore
177
- - Documentation/GNUmakefile
178
- - Documentation/unicorn.1.txt
179
- - Documentation/unicorn_rails.1.txt
123
+ - Documentation/unicorn.1
124
+ - Documentation/unicorn_rails.1
180
125
  - FAQ
181
126
  - GIT-VERSION-FILE
182
127
  - GIT-VERSION-GEN
@@ -195,20 +140,24 @@ files:
195
140
  - Sandbox
196
141
  - TODO
197
142
  - TUNING
143
+ - archive/.gitignore
144
+ - archive/slrnpull.conf
198
145
  - bin/unicorn
199
146
  - bin/unicorn_rails
200
147
  - examples/big_app_gc.rb
201
148
  - examples/echo.ru
202
- - examples/git.ru
203
149
  - examples/init.sh
204
150
  - examples/logger_mp_safe.rb
205
151
  - examples/logrotate.conf
206
152
  - examples/nginx.conf
207
153
  - examples/unicorn.conf.minimal.rb
208
154
  - examples/unicorn.conf.rb
155
+ - examples/unicorn.socket
156
+ - examples/unicorn@.service
209
157
  - ext/unicorn_http/CFLAGS
210
158
  - ext/unicorn_http/c_util.h
211
159
  - ext/unicorn_http/common_field_optimization.h
160
+ - ext/unicorn_http/epollexclusive.h
212
161
  - ext/unicorn_http/ext_help.h
213
162
  - ext/unicorn_http/extconf.rb
214
163
  - ext/unicorn_http/global_variables.h
@@ -217,8 +166,6 @@ files:
217
166
  - ext/unicorn_http/unicorn_http.rl
218
167
  - ext/unicorn_http/unicorn_http_common.rl
219
168
  - lib/unicorn.rb
220
- - lib/unicorn/app/exec_cgi.rb
221
- - lib/unicorn/app/inetd.rb
222
169
  - lib/unicorn/app/old_rails.rb
223
170
  - lib/unicorn/app/old_rails/static.rb
224
171
  - lib/unicorn/cgi_wrapper.rb
@@ -230,20 +177,16 @@ files:
230
177
  - lib/unicorn/launcher.rb
231
178
  - lib/unicorn/oob_gc.rb
232
179
  - lib/unicorn/preread_input.rb
180
+ - lib/unicorn/select_waiter.rb
233
181
  - lib/unicorn/socket_helper.rb
234
- - lib/unicorn/ssl_client.rb
235
- - lib/unicorn/ssl_configurator.rb
236
- - lib/unicorn/ssl_server.rb
237
182
  - lib/unicorn/stream_input.rb
238
183
  - lib/unicorn/tee_input.rb
239
184
  - lib/unicorn/tmpio.rb
240
185
  - lib/unicorn/util.rb
241
186
  - lib/unicorn/version.rb
242
187
  - lib/unicorn/worker.rb
243
- - local.mk.sample
244
188
  - man/man1/unicorn.1
245
189
  - man/man1/unicorn_rails.1
246
- - script/isolate_for_tests
247
190
  - setup.rb
248
191
  - t/.gitignore
249
192
  - t/GNUmakefile
@@ -256,7 +199,6 @@ files:
256
199
  - t/env.ru
257
200
  - t/fails-rack-lint.ru
258
201
  - t/heartbeat-timeout.ru
259
- - t/hijack.ru
260
202
  - t/listener_names.ru
261
203
  - t/my-tap-lib.sh
262
204
  - t/oob_gc.ru
@@ -264,7 +206,6 @@ files:
264
206
  - t/pid.ru
265
207
  - t/preread_input.ru
266
208
  - t/rack-input-tests.ru
267
- - t/sslgen.sh
268
209
  - t/t0000-http-basic.sh
269
210
  - t/t0001-reload-bad-config.sh
270
211
  - t/t0002-config-conflict.sh
@@ -287,8 +228,6 @@ files:
287
228
  - t/t0014-rewindable-input-true.sh
288
229
  - t/t0014.ru
289
230
  - t/t0015-configurator-internals.sh
290
- - t/t0016-trust-x-forwarded-false.sh
291
- - t/t0017-trust-x-forwarded-true.sh
292
231
  - t/t0018-write-on-close.sh
293
232
  - t/t0019-max_header_len.sh
294
233
  - t/t0020-at_exit-handler.sh
@@ -297,9 +236,9 @@ files:
297
236
  - t/t0100-rack-input-tests.sh
298
237
  - t/t0116-client_body_buffer_size.sh
299
238
  - t/t0116.ru
300
- - t/t0200-rack-hijack.sh
301
239
  - t/t0300-no-default-middleware.sh
302
- - t/t0600-https-server-basic.sh
240
+ - t/t0301-no-default-middleware-ignored-in-config.sh
241
+ - t/t0301.ru
303
242
  - t/t9000-preread-input.sh
304
243
  - t/t9001-oob_gc.sh
305
244
  - t/t9002-oob_gc-path.sh
@@ -308,66 +247,61 @@ files:
308
247
  - test/aggregate.rb
309
248
  - test/benchmark/README
310
249
  - test/benchmark/dd.ru
250
+ - test/benchmark/ddstream.ru
251
+ - test/benchmark/readinput.ru
311
252
  - test/benchmark/stack.ru
253
+ - test/benchmark/uconnect.perl
312
254
  - test/exec/README
313
255
  - test/exec/test_exec.rb
314
256
  - test/test_helper.rb
257
+ - test/unit/test_ccc.rb
315
258
  - test/unit/test_configurator.rb
316
259
  - test/unit/test_droplet.rb
317
260
  - test/unit/test_http_parser.rb
318
261
  - test/unit/test_http_parser_ng.rb
319
- - test/unit/test_http_parser_xftrust.rb
320
262
  - test/unit/test_request.rb
321
263
  - test/unit/test_response.rb
322
264
  - test/unit/test_server.rb
323
265
  - test/unit/test_signals.rb
324
- - test/unit/test_sni_hostnames.rb
325
266
  - test/unit/test_socket_helper.rb
326
267
  - test/unit/test_stream_input.rb
327
268
  - test/unit/test_tee_input.rb
328
269
  - test/unit/test_upload.rb
329
270
  - test/unit/test_util.rb
271
+ - test/unit/test_waiter.rb
330
272
  - unicorn.gemspec
331
- homepage: http://unicorn.bogomips.org/
273
+ - unicorn_1
274
+ - unicorn_rails_1
275
+ homepage: https://yhbt.net/unicorn/
332
276
  licenses:
333
- - !binary |-
334
- R1BMdjIr
335
- - !binary |-
336
- UnVieSAxLjg=
277
+ - GPL-2.0+
278
+ - Ruby-1.8
279
+ metadata: {}
337
280
  post_install_message:
338
- rdoc_options:
339
- - -t
340
- - ! 'Unicorn: Rack HTTP server for fast clients and Unix'
341
- - -W
342
- - http://bogomips.org/unicorn.git/tree/%s
281
+ rdoc_options: []
343
282
  require_paths:
344
283
  - lib
345
284
  required_ruby_version: !ruby/object:Gem::Requirement
346
- none: false
347
285
  requirements:
348
- - - ! '>='
286
+ - - ">="
349
287
  - !ruby/object:Gem::Version
350
- version: '0'
288
+ version: 2.0.0
351
289
  required_rubygems_version: !ruby/object:Gem::Requirement
352
- none: false
353
290
  requirements:
354
- - - ! '>='
291
+ - - ">="
355
292
  - !ruby/object:Gem::Version
356
293
  version: '0'
357
294
  requirements: []
358
- rubyforge_project: !binary |-
359
- bW9uZ3JlbA==
360
- rubygems_version: 1.8.23
295
+ rubygems_version: 3.0.2
361
296
  signing_key:
362
- specification_version: 3
297
+ specification_version: 4
363
298
  summary: Rack HTTP server for fast clients and Unix
364
299
  test_files:
365
300
  - test/unit/test_configurator.rb
366
301
  - test/unit/test_http_parser.rb
367
302
  - test/unit/test_http_parser_ng.rb
368
- - test/unit/test_http_parser_xftrust.rb
369
303
  - test/unit/test_request.rb
370
- - test/unit/test_response.rb
371
304
  - test/unit/test_server.rb
372
- - test/unit/test_sni_hostnames.rb
305
+ - test/unit/test_upload.rb
373
306
  - test/unit/test_util.rb
307
+ - test/unit/test_waiter.rb
data/.wrongdoc.yml DELETED
@@ -1,10 +0,0 @@
1
- ---
2
- cgit_url: http://bogomips.org/unicorn.git
3
- git_url: git://bogomips.org/unicorn.git
4
- rdoc_url: http://unicorn.bogomips.org/
5
- changelog_start: v1.1.5
6
- merge_html:
7
- unicorn_1: Documentation/unicorn.1.html
8
- unicorn_rails_1: Documentation/unicorn_rails.1.html
9
- public_email: mongrel-unicorn@rubyforge.org
10
- private_email: unicorn@bogomips.org