cool.io 1.5.3 → 1.7.1

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: 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