cool.io 1.5.3 → 1.7.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.
- checksums.yaml +4 -4
- data/.travis.yml +4 -6
- data/CHANGES.md +26 -0
- data/Rakefile +1 -2
- data/cool.io.gemspec +2 -1
- data/ext/cool.io/cool.io.h +11 -0
- data/ext/cool.io/extconf.rb +8 -0
- data/ext/cool.io/iowatcher.c +4 -0
- data/ext/cool.io/loop.c +0 -1
- data/ext/cool.io/utils.c +5 -0
- data/ext/iobuffer/extconf.rb +2 -2
- data/ext/libev/ev.c +3 -0
- data/lib/cool.io/dns_resolver.rb +9 -0
- data/lib/cool.io/version.rb +1 -1
- data/spec/dns_spec.rb +7 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a611bb7980df8a3760bc51f76cfea2575521db42b21dd7be2f620e8b0ca8918
|
4
|
+
data.tar.gz: e95febff82569dd11e2fab485659274b52b3d0ff4eefbe5bd81f5ec2a16b28ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76b174135504ba2eea8bfc4112ae3cc16816cade3b556af5ddc008a3e4efebab461e501173d3ff555e4bf980bec29766433d2494aef888088eb46071de2b87e2
|
7
|
+
data.tar.gz: 071a0831d705a71aed948ebe636590ba6eb9cd405ddd8fe886f8361ea3fb1da40f07eff24f3aaf435a94c3a40b560b157b468f1a29be9de508ab0142e740cecb
|
data/.travis.yml
CHANGED
data/CHANGES.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
1.7.1
|
2
|
+
-----
|
3
|
+
|
4
|
+
* Set fallback local loopback address by default for Windows environment
|
5
|
+
|
6
|
+
1.7.0
|
7
|
+
-----
|
8
|
+
|
9
|
+
* Fix extension build failure for ruby3
|
10
|
+
|
11
|
+
1.6.1
|
12
|
+
-----
|
13
|
+
|
14
|
+
* Fix warning for recent compilers
|
15
|
+
|
16
|
+
1.6.0
|
17
|
+
-----
|
18
|
+
|
19
|
+
* Add ruby 2.6/2.7 to windows gem
|
20
|
+
* Drop ruby 2.1/2.2/2.3 from windows gem
|
21
|
+
|
22
|
+
1.5.4
|
23
|
+
-----
|
24
|
+
|
25
|
+
* Add ruby 2.5 to windows gem
|
26
|
+
|
1
27
|
1.5.3
|
2
28
|
-----
|
3
29
|
|
data/Rakefile
CHANGED
@@ -48,8 +48,7 @@ namespace :build do
|
|
48
48
|
task :windows do
|
49
49
|
require 'rake_compiler_dock'
|
50
50
|
RakeCompilerDock.sh <<-CROSS
|
51
|
-
bundle
|
52
|
-
rake cross native gem RUBY_CC_VERSION='2.0.0:2.1.6:2.2.2:2.3.0:2.4.0'
|
51
|
+
bundle && bundle exec rake cross native gem RUBY_CC_VERSION='2.7.0:2.6.0:2.5.0:2.4.0'
|
53
52
|
CROSS
|
54
53
|
end
|
55
54
|
end
|
data/cool.io.gemspec
CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "A cool framework for doing high performance I/O in Ruby"
|
12
12
|
s.description = "Cool.io provides a high performance event framework for Ruby which uses the libev C library"
|
13
13
|
s.extensions = ["ext/cool.io/extconf.rb", "ext/iobuffer/extconf.rb"]
|
14
|
+
s.licenses = ["MIT"]
|
14
15
|
|
15
16
|
s.files = `git ls-files`.split("\n")
|
16
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -18,7 +19,7 @@ Gem::Specification.new do |s|
|
|
18
19
|
s.require_paths = ["lib"]
|
19
20
|
|
20
21
|
s.add_development_dependency "rake-compiler", "~> 1.0"
|
21
|
-
s.add_development_dependency "rake-compiler-dock", "~>
|
22
|
+
s.add_development_dependency "rake-compiler-dock", "~> 1.0"
|
22
23
|
s.add_development_dependency "rspec", ">= 2.13.0"
|
23
24
|
s.add_development_dependency "rdoc", ">= 3.6.0"
|
24
25
|
end
|
data/ext/cool.io/cool.io.h
CHANGED
@@ -8,7 +8,11 @@
|
|
8
8
|
#define COOLIO_H
|
9
9
|
|
10
10
|
#include "ruby.h"
|
11
|
+
#if defined(HAVE_RUBY_IO_H)
|
12
|
+
#include "ruby/io.h"
|
13
|
+
#else
|
11
14
|
#include "rubyio.h"
|
15
|
+
#endif
|
12
16
|
|
13
17
|
#ifdef GetReadFile
|
14
18
|
#define FPTR_TO_FD(fptr) (fileno(GetReadFile(fptr)))
|
@@ -56,4 +60,11 @@ struct Coolio_Watcher
|
|
56
60
|
|
57
61
|
void Coolio_Loop_process_event(VALUE watcher, int revents);
|
58
62
|
|
63
|
+
void Init_coolio_loop();
|
64
|
+
void Init_coolio_watcher();
|
65
|
+
void Init_coolio_iowatcher();
|
66
|
+
void Init_coolio_timer_watcher();
|
67
|
+
void Init_coolio_stat_watcher();
|
68
|
+
void Init_coolio_utils();
|
69
|
+
|
59
70
|
#endif
|
data/ext/cool.io/extconf.rb
CHANGED
@@ -10,6 +10,14 @@ have_func('rb_thread_alone')
|
|
10
10
|
have_func('rb_str_set_len')
|
11
11
|
have_library('rt', 'clock_gettime')
|
12
12
|
|
13
|
+
if have_header('ruby/io.h')
|
14
|
+
$defs << '-DHAVE_RUBY_IO_H'
|
15
|
+
end
|
16
|
+
|
17
|
+
if have_header('ruby/thread.h')
|
18
|
+
$defs << '-DHAVE_RUBY_THREAD_H'
|
19
|
+
end
|
20
|
+
|
13
21
|
if have_header('sys/select.h')
|
14
22
|
$defs << '-DEV_USE_SELECT'
|
15
23
|
end
|
data/ext/cool.io/iowatcher.c
CHANGED
data/ext/cool.io/loop.c
CHANGED
data/ext/cool.io/utils.c
CHANGED
data/ext/iobuffer/extconf.rb
CHANGED
@@ -2,8 +2,8 @@ require 'mkmf'
|
|
2
2
|
|
3
3
|
dir_config("iobuffer")
|
4
4
|
have_library("c", "main")
|
5
|
-
if have_macro("HAVE_RB_IO_T", "
|
6
|
-
have_struct_member("rb_io_t", "fd", "
|
5
|
+
if have_macro("HAVE_RB_IO_T", "ruby/io.h")
|
6
|
+
have_struct_member("rb_io_t", "fd", "ruby/io.h")
|
7
7
|
end
|
8
8
|
|
9
9
|
create_makefile("iobuffer_ext")
|
data/ext/libev/ev.c
CHANGED
@@ -39,6 +39,9 @@
|
|
39
39
|
|
40
40
|
/* ########## COOLIO PATCHERY HO! ########## */
|
41
41
|
#include "ruby.h"
|
42
|
+
#if defined(HAVE_RUBY_THREAD_H)
|
43
|
+
#include "ruby/thread.h"
|
44
|
+
#endif
|
42
45
|
/* ######################################## */
|
43
46
|
|
44
47
|
/* this big block deduces configuration from config.h */
|
data/lib/cool.io/dns_resolver.rb
CHANGED
@@ -49,6 +49,15 @@ module Coolio
|
|
49
49
|
entries.each { |e| hosts[e] ||= addr }
|
50
50
|
end
|
51
51
|
end
|
52
|
+
if hosts.empty?
|
53
|
+
# On Windows, there is a case that hosts file doesn't have entry by default
|
54
|
+
# and preferred IPv4/IPv6 behavior may be changed by registry key [1], so
|
55
|
+
# "localhost" should be resolved by getaddrinfo.
|
56
|
+
# (first[3] means preferred resolved IP address ::1 or 127.0.0.1)
|
57
|
+
# [1] https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-ipv6-in-windows
|
58
|
+
require "socket"
|
59
|
+
hosts["localhost"] = ::Socket.getaddrinfo("localhost", nil).first[3]
|
60
|
+
end
|
52
61
|
|
53
62
|
hosts[host]
|
54
63
|
end
|
data/lib/cool.io/version.rb
CHANGED
data/spec/dns_spec.rb
CHANGED
@@ -19,6 +19,7 @@ end
|
|
19
19
|
describe "DNS" do
|
20
20
|
before :each do
|
21
21
|
@loop = Cool.io::Loop.new
|
22
|
+
@preferred_localhost_address = ::Socket.getaddrinfo("localhost", nil).first[3]
|
22
23
|
end
|
23
24
|
|
24
25
|
it "connects to valid domains" do
|
@@ -40,4 +41,10 @@ describe "DNS" do
|
|
40
41
|
@loop.run
|
41
42
|
end.to raise_error(WontResolve)
|
42
43
|
end
|
44
|
+
|
45
|
+
it "resolve localhost even though hosts is empty" do
|
46
|
+
Tempfile.open("empty") do |file|
|
47
|
+
expect( Coolio::DNSResolver.hosts("localhost", file.path)).to eq @preferred_localhost_address
|
48
|
+
end
|
49
|
+
end
|
43
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cool.io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Arcieri
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: '1.0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: '1.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,7 +154,8 @@ files:
|
|
154
154
|
- spec/unix_listener_spec.rb
|
155
155
|
- spec/unix_server_spec.rb
|
156
156
|
homepage: http://coolio.github.com
|
157
|
-
licenses:
|
157
|
+
licenses:
|
158
|
+
- MIT
|
158
159
|
metadata: {}
|
159
160
|
post_install_message:
|
160
161
|
rdoc_options: []
|
@@ -171,8 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
172
|
- !ruby/object:Gem::Version
|
172
173
|
version: '0'
|
173
174
|
requirements: []
|
174
|
-
|
175
|
-
rubygems_version: 2.7.2
|
175
|
+
rubygems_version: 3.1.4
|
176
176
|
signing_key:
|
177
177
|
specification_version: 4
|
178
178
|
summary: A cool framework for doing high performance I/O in Ruby
|