iodine 0.7.44 → 0.7.47

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a212aecebe63d7033c5c1e985d4e2f90588dc604c8aa6a25965735aeef79ec72
4
- data.tar.gz: 299ef31e1f2209cb11c0c49f2d4851d8c779a2744ebc08f42fb430ffaf3d76cc
3
+ metadata.gz: 4aea7e9b88b263c0f7dc83f40923fe6e40ec0b6848b4a2ec7b6c5130de8ece48
4
+ data.tar.gz: 7e8912f9b6e8db48cecf299a1dfe6d102be1df1a7197451dcba7514e37a0e3b5
5
5
  SHA512:
6
- metadata.gz: a6f12dfcff4eced37d98f627be0cb6a9662c8bac98365a5080ea0c47f9c3ae3919e315836ec33989be098c52c826707e0f22fa746f95a3847b354d6d0efa4f79
7
- data.tar.gz: 1b5541f8c952f6b61feeb183cc6d7587ca200b4295afec9c9e540c69699f065c03724b46b464c929cc0aa800b594a0cdb83ec7b9a1b57c7501ba5633cb270124
6
+ metadata.gz: f859b4dcdf6daae8b3a0244b4ef4f99c2f3938d2c2280122b0a2a041e71cbaff072dcdd3544367b685f16d93b57da80f4d57a65a2ab212263e98711d5b8d32ab
7
+ data.tar.gz: 1a8da92a2795cf3aeb00fa038605fda42eb5b967d502d578a7487ca6f36b0c81471565650012d8ec982bcc7eec1d1d9e1f01ff97e50e14b45b44cb457b1362fd
@@ -21,7 +21,7 @@ A clear and concise description of what the bug is.
21
21
  ### Rack App to Reproduce
22
22
 
23
23
  ```ruby
24
- APP = {|env| [200, {}, "Hello World"] }
24
+ APP = proc {|env| [200, {}, ["Hello World"]] }
25
25
  run APP
26
26
  ```
27
27
 
data/.gitignore CHANGED
@@ -10,6 +10,7 @@
10
10
  /old_stuff/
11
11
  *.bundle
12
12
  *.so
13
+ *.gem
13
14
 
14
15
  .ruby-version
15
16
  .clang_complete
data/CHANGELOG.md CHANGED
@@ -6,6 +6,20 @@ Please notice that this change log contains changes for upcoming releases as wel
6
6
 
7
7
  ## Changes:
8
8
 
9
+ #### Change log v.0.7.47 (2022-05-11)
10
+
11
+ **Fix**: Fixes an issue that causes `Rack::Lint` to complain about `SERVER_PORT` being an empty string. Credit to @adam12 (Adam Daniels) for PR #108 and issue #107.
12
+
13
+ #### Change log v.0.7.46 (2022-05-06)
14
+
15
+ **Fix**: Fixes the (erroneous) default insertion of the `last-modified` header in order to both better express the intent of RFC 2616 and prevent conflict with the `Rack::ETag` middleware. Credit to @raxoft (Patrik Rak) for opening issue #122.
16
+
17
+ #### Change log v.0.7.45 (2021-11-26)
18
+
19
+ **Security**: Fixes a number of issues with the HTTP parser that could have been leveraged in potential exploit attempts such as request smuggling. Credit to @dcepelik (David Čepelík).
20
+
21
+ **Compatibility**: This release adds experimental Windows support (I don't have Windows, nor Intel, I cannot test this). Credit for a lot of work by @janbiedermann (Jan Biedermann).
22
+
9
23
  #### Change log v.0.7.44 (2021-02-28)
10
24
 
11
25
  **Fix**: Fixes issue #103 where an empty String response would result in the word "null" being returned (no String object was created, which routed the NULL object to facil.io's JSON interpreter). Credit to @waghanza (Marwan Rabbâa) for exposing the issue.
data/examples/etag.ru ADDED
@@ -0,0 +1,16 @@
1
+ # This example uses Rack::ETag to allow for response caching.
2
+
3
+ require 'rack'
4
+ require 'iodine'
5
+
6
+ App = Proc.new do |env|
7
+ [200,
8
+ { "Content-Type" => "text/html".freeze,
9
+ "Content-Length" => "16".freeze },
10
+ ['Hello from Rack!'.freeze] ]
11
+ end
12
+
13
+ use Rack::ConditionalGet
14
+ use Rack::ETag, 'public'
15
+
16
+ run App
@@ -36,7 +36,10 @@ int main(void) {
36
36
  EOS
37
37
 
38
38
  # Test for manual selection and then TRY_COMPILE with each polling engine
39
- if ENV['FIO_POLL']
39
+ if Gem.win_platform?
40
+ puts "skipping polling tests, using WSAPOLL on Windows"
41
+ $defs << "-DFIO_ENGINE_WSAPOLL"
42
+ elsif ENV['FIO_POLL']
40
43
  puts "skipping polling tests, enforcing manual selection of: poll"
41
44
  $defs << "-DFIO_ENGINE_POLL"
42
45
  elsif ENV['FIO_FORCE_POLL']
@@ -64,9 +67,10 @@ end
64
67
 
65
68
  iodine_test_polling_support()
66
69
 
67
- # Test for OpenSSL version equal to 1.0.0 or greater.
68
- unless ENV['NO_SSL'] || ENV['NO_TLS'] || ENV["DISABLE_SSL"]
69
- OPENSSL_TEST_CODE = <<EOS
70
+ unless Gem.win_platform?
71
+ # Test for OpenSSL version equal to 1.0.0 or greater.
72
+ unless ENV['NO_SSL'] || ENV['NO_TLS'] || ENV["DISABLE_SSL"]
73
+ OPENSSL_TEST_CODE = <<EOS
70
74
  \#include <openssl/bio.h>
71
75
  \#include <openssl/err.h>
72
76
  \#include <openssl/ssl.h>
@@ -84,18 +88,19 @@ int main(void) {
84
88
  }
85
89
  EOS
86
90
 
87
- dir_config("openssl")
88
- begin
89
- require 'openssl'
90
- rescue LoadError
91
- else
92
- if have_library('crypto') && have_library('ssl')
93
- puts "detected OpenSSL library, testing for version and required functions."
94
- if try_compile(OPENSSL_TEST_CODE)
95
- $defs << "-DHAVE_OPENSSL"
96
- puts "confirmed OpenSSL to be version 1.1.0 or above (#{OpenSSL::OPENSSL_LIBRARY_VERSION})...\n* compiling with HAVE_OPENSSL."
97
- else
98
- puts "FAILED: OpenSSL version not supported (#{OpenSSL::OPENSSL_LIBRARY_VERSION} is too old)."
91
+ dir_config("openssl")
92
+ begin
93
+ require 'openssl'
94
+ rescue LoadError
95
+ else
96
+ if have_library('crypto') && have_library('ssl')
97
+ puts "detected OpenSSL library, testing for version and required functions."
98
+ if try_compile(OPENSSL_TEST_CODE)
99
+ $defs << "-DHAVE_OPENSSL"
100
+ puts "confirmed OpenSSL to be version 1.1.0 or above (#{OpenSSL::OPENSSL_LIBRARY_VERSION})...\n* compiling with HAVE_OPENSSL."
101
+ else
102
+ puts "FAILED: OpenSSL version not supported (#{OpenSSL::OPENSSL_LIBRARY_VERSION} is too old)."
103
+ end
99
104
  end
100
105
  end
101
106
  end