iodine 0.7.44 → 0.7.45
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- data/.gitignore +1 -0
- data/CHANGELOG.md +6 -0
- data/ext/iodine/extconf.rb +21 -16
- data/ext/iodine/fio.c +1108 -162
- data/ext/iodine/fio.h +49 -13
- data/ext/iodine/fio_cli.c +1 -1
- data/ext/iodine/fio_tls_missing.c +8 -0
- data/ext/iodine/fio_tls_openssl.c +8 -0
- data/ext/iodine/fio_tmpfile.h +13 -1
- data/ext/iodine/fiobj_data.c +6 -4
- data/ext/iodine/fiobj_data.h +2 -1
- data/ext/iodine/fiobj_hash.c +32 -6
- data/ext/iodine/fiobj_mustache.c +9 -0
- data/ext/iodine/fiobj_numbers.c +86 -8
- data/ext/iodine/fiobj_str.c +24 -11
- data/ext/iodine/fiobject.c +1 -1
- data/ext/iodine/fiobject.h +5 -3
- data/ext/iodine/http.c +66 -10
- data/ext/iodine/http1.c +2 -1
- data/ext/iodine/http1_parser.h +1065 -103
- data/ext/iodine/http_internal.c +1 -0
- data/ext/iodine/http_internal.h +4 -2
- data/ext/iodine/iodine.c +63 -0
- data/ext/iodine/iodine.h +2 -0
- data/ext/iodine/iodine_caller.c +48 -8
- data/ext/iodine/iodine_http.c +24 -0
- data/ext/iodine/iodine_rack_io.c +21 -0
- data/ext/iodine/iodine_tcp.c +14 -0
- data/ext/iodine/iodine_tls.c +8 -0
- data/ext/iodine/mustache_parser.h +4 -0
- data/ext/iodine/redis_engine.c +14 -11
- data/ext/iodine/websockets.c +7 -3
- data/iodine.gemspec +5 -4
- data/lib/iodine/version.rb +1 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33f22236ecbf1c2166c056476bbefb6ab80b709cdb6cc16c0ec144926cf3fdc0
|
4
|
+
data.tar.gz: 6b0c70cc71431eb3611d34af45c80f679c0177141843a5e03b1cdb6b242d4f19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3506324c77f3de50b9dda515922c3468bbb49c63cd58831d2f7711e02b28209ba7fb5d15e076e860092be4d783cf595fd69b2483bf7ee59b873040005468161f
|
7
|
+
data.tar.gz: 7c4b0ffb76c749c11f18d66faaad5494e6ab7c675b0d887721de3c7494a7b764886bb8b7b4f5fc369e606e0f3b2e30172818dae27faa4c3cfffa73d094012cf9
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ 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.45 (2021-11-26)
|
10
|
+
|
11
|
+
**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).
|
12
|
+
|
13
|
+
**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).
|
14
|
+
|
9
15
|
#### Change log v.0.7.44 (2021-02-28)
|
10
16
|
|
11
17
|
**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/ext/iodine/extconf.rb
CHANGED
@@ -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
|
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
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
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
|