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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb54e49863afc971826198ee687ef881a2dd6ec42d23059779e6cbdb20b5e278
4
- data.tar.gz: 6a3b86b8a42a673add266913c4bbfb7cc035070b2877636bb505612b77ba4483
3
+ metadata.gz: 1a611bb7980df8a3760bc51f76cfea2575521db42b21dd7be2f620e8b0ca8918
4
+ data.tar.gz: e95febff82569dd11e2fab485659274b52b3d0ff4eefbe5bd81f5ec2a16b28ca
5
5
  SHA512:
6
- metadata.gz: d73e356c38ec3d2776b13b27350b9b4767672e716a29327e9273d1300488f6d10a9b5ebb5ee0b37be323130de112122a1d4c05a8e27d3df40be3e715431d93f1
7
- data.tar.gz: d007f4a13b6390acc67c3e7a37696121566ab55157029bfba8ed7bc2a08bc85e56ed8b51bd2f27b8837f46fdc5f62a6e4ab184033eb53f4af679bcf8659d5f70
6
+ metadata.gz: 76b174135504ba2eea8bfc4112ae3cc16816cade3b556af5ddc008a3e4efebab461e501173d3ff555e4bf980bec29766433d2494aef888088eb46071de2b87e2
7
+ data.tar.gz: 071a0831d705a71aed948ebe636590ba6eb9cd405ddd8fe886f8361ea3fb1da40f07eff24f3aaf435a94c3a40b560b157b468f1a29be9de508ab0142e740cecb
data/.travis.yml CHANGED
@@ -3,12 +3,10 @@ language: ruby
3
3
  sudo: false
4
4
 
5
5
  rvm:
6
- - 1.9.3
7
- - 2.0
8
- - 2.1
9
- - 2.2
10
- - 2.3.0
11
- - 2.4.1
6
+ - 2.4.10
7
+ - 2.5
8
+ - 2.6
9
+ - 2.7
12
10
  - ruby-head
13
11
  - rbx
14
12
 
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", "~> 0.6.0"
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
@@ -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
@@ -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
@@ -5,7 +5,11 @@
5
5
  */
6
6
 
7
7
  #include "ruby.h"
8
+ #if defined(HAVE_RUBY_IO_H)
9
+ #include "ruby/io.h"
10
+ #else
8
11
  #include "rubyio.h"
12
+ #endif
9
13
 
10
14
  #include "ev_wrap.h"
11
15
 
data/ext/cool.io/loop.c CHANGED
@@ -6,7 +6,6 @@
6
6
 
7
7
  #include <assert.h>
8
8
  #include "ruby.h"
9
- #include "rubysig.h"
10
9
  #include "ev_wrap.h"
11
10
 
12
11
  #include "cool.io.h"
data/ext/cool.io/utils.c CHANGED
@@ -15,6 +15,11 @@
15
15
  #include <sys/sysctl.h>
16
16
  #endif
17
17
 
18
+ #ifdef HAVE_SYSCTLBYNAME
19
+ #include <sys/sysctl.h>
20
+ #include <sys/types.h>
21
+ #endif
22
+
18
23
  static VALUE mCoolio = Qnil;
19
24
  static VALUE cCoolio_Utils = Qnil;
20
25
 
@@ -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", "rubyio.h")
6
- have_struct_member("rb_io_t", "fd", "rubyio.h")
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 */
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Coolio
2
- VERSION = "1.5.3"
2
+ VERSION = "1.7.1"
3
3
 
4
4
  def self.version
5
5
  VERSION
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.5.3
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: 2017-11-22 00:00:00.000000000 Z
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: 0.6.0
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: 0.6.0
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
- rubyforge_project:
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