iodine 0.7.43 → 0.7.46

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: 7a444a825ab9cf0e6bd11fe14fb20c6a777e9282c1bea56cf5dc869087ce7a44
4
- data.tar.gz: 4c698a81975a588e8a5c185d57f9ca76ae1d37200d2a258f5d38631de386e9dd
3
+ metadata.gz: 0a2b1c5f8f5b6ec1d2259cf33e2cde27e3811a2df5715fa3463891062db2c9ae
4
+ data.tar.gz: 8b1140297cdbf2501ab145712b5cccce06beb1d7350d0d4d7176e86053d5255a
5
5
  SHA512:
6
- metadata.gz: 9659c57e4d0c9f884b52dc07cf7b4c1a707f78d27bf03d058db1c2bfe2c873141a7d128c56b933098fa61a1f8fc48cce1319fea298c15bc8c606bb665b6d7d88
7
- data.tar.gz: f183fb08856e81963d90d03ba0319f2633a72634beb8b37b2a5cee6c66dfa61710de5532abb5c82dd059d0c8382b9968a824f2caefeee2a53213e2bab2bac0b3
6
+ metadata.gz: 96ce75b3a7ef9548e33e73438b4aaf785a41594b4dec4a214081699c556c60512a54a231748de3f1478f622cb540fd67d3afd6bb87cc1bc38ee32471ab4ce016
7
+ data.tar.gz: 40d9d0e4499fd59e7e25f37f300c246c4f9d645246c31a4af7b28f622699a8c12861e0a884ecfd1274451e0a24f5b28be212748286023ff75e6ceb406b6031db
@@ -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,24 @@ 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.46 (2022-05-06)
10
+
11
+ **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.
12
+
13
+ #### Change log v.0.7.45 (2021-11-26)
14
+
15
+ **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).
16
+
17
+ **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).
18
+
19
+ #### Change log v.0.7.44 (2021-02-28)
20
+
21
+ **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.
22
+
23
+ **Fix**: Fixes a possible edge case race condition where the GC might free a channel name's String object before it's passed on to the user's callback.
24
+
25
+ **Fix**: Fixes a typo in the CLI documentation.
26
+
9
27
  #### Change log v.0.7.43 (2020-11-03)
10
28
 
11
29
  **Fix**: Fixes an issue where the GVL state in user-spawned threads is inaccurate. This issue only occurs if spawning a new thread and calling certain Iodine methods from a user thread.
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