eventmachine 1.0.0-x86-mingw32 → 1.0.1-x86-mingw32

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.
@@ -0,0 +1,12 @@
1
+ script: rake compile test
2
+ language: ruby
3
+ rvm:
4
+ - 1.8.7
5
+ - 1.9.3
6
+ - rbx-18mode
7
+ - rbx-19mode
8
+ - jruby
9
+ matrix:
10
+ allow_failures:
11
+ - rvm: rbx-18mode
12
+ - rvm: rbx-19mode
@@ -0,0 +1,7 @@
1
+ # Changelog
2
+
3
+ ## 1.0.1 (February 27, 2013)
4
+ * use rb_wait_for_single_fd() on ruby 2.0 to fix rb_thread_select() deprecation
5
+ * fix epoll/kqueue mode in ruby 2.0 by removing calls to rb_enable_interrupt() [#248, #389]
6
+ * fix memory leak when verifying ssl cerificates [#403]
7
+ * fix initial connection delay [#393, #374]
data/Gemfile CHANGED
@@ -1,3 +1,2 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
  gemspec
3
-
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  s.files = `git ls-files`.split("\n")
14
14
  s.extensions = ["ext/extconf.rb", "ext/fastfilereader/extconf.rb"]
15
15
 
16
- s.add_development_dependency 'rake-compiler', '~> 0.8.1'
17
- s.add_development_dependency 'yard', ">= 0.7.2"
16
+ s.add_development_dependency 'rake-compiler', '~> 0.8.3'
17
+ s.add_development_dependency 'yard', ">= 0.8.5.2"
18
18
  s.add_development_dependency 'bluecloth'
19
19
 
20
20
  s.summary = 'Ruby/EventMachine library'
data/ext/ed.cpp CHANGED
@@ -460,6 +460,8 @@ ConnectionDescriptor::SetConnectPending
460
460
  void ConnectionDescriptor::SetConnectPending(bool f)
461
461
  {
462
462
  bConnectPending = f;
463
+ if (f == false && NextHeartbeat)
464
+ MyEventMachine->ClearHeartbeat(NextHeartbeat, this);
463
465
  _UpdateEvents();
464
466
  }
465
467
 
data/ext/em.cpp CHANGED
@@ -524,12 +524,17 @@ bool EventMachine_t::_RunEpollOnce()
524
524
 
525
525
  #ifdef BUILD_FOR_RUBY
526
526
  int ret = 0;
527
+
528
+ #ifdef HAVE_RB_WAIT_FOR_SINGLE_FD
529
+ if ((ret = rb_wait_for_single_fd(epfd, RB_WAITFD_IN|RB_WAITFD_PRI, &tv)) < 1) {
530
+ #else
527
531
  fd_set fdreads;
528
532
 
529
533
  FD_ZERO(&fdreads);
530
534
  FD_SET(epfd, &fdreads);
531
535
 
532
536
  if ((ret = rb_thread_select(epfd + 1, &fdreads, NULL, NULL, &tv)) < 1) {
537
+ #endif
533
538
  if (ret == -1) {
534
539
  assert(errno != EINVAL);
535
540
  assert(errno != EBADF);
@@ -598,12 +603,17 @@ bool EventMachine_t::_RunKqueueOnce()
598
603
 
599
604
  #ifdef BUILD_FOR_RUBY
600
605
  int ret = 0;
606
+
607
+ #ifdef HAVE_RB_WAIT_FOR_SINGLE_FD
608
+ if ((ret = rb_wait_for_single_fd(kqfd, RB_WAITFD_IN|RB_WAITFD_PRI, &tv)) < 1) {
609
+ #else
601
610
  fd_set fdreads;
602
611
 
603
612
  FD_ZERO(&fdreads);
604
613
  FD_SET(kqfd, &fdreads);
605
614
 
606
615
  if ((ret = rb_thread_select(kqfd + 1, &fdreads, NULL, NULL, &tv)) < 1) {
616
+ #endif
607
617
  if (ret == -1) {
608
618
  assert(errno != EINVAL);
609
619
  assert(errno != EBADF);
data/ext/em.h CHANGED
@@ -24,9 +24,13 @@ See the file COPYING for complete licensing information.
24
24
  #include <ruby.h>
25
25
  #define EmSelect rb_thread_select
26
26
 
27
+ #ifdef HAVE_RB_WAIT_FOR_SINGLE_FD
28
+ #include <ruby/io.h>
29
+ #endif
30
+
27
31
  #if defined(HAVE_RBTRAP)
28
32
  #include <rubysig.h>
29
- #elif defined(HAVE_RB_THREAD_CHECK_INTS)
33
+ #elif defined(HAVE_RB_ENABLE_INTERRUPT)
30
34
  extern "C" {
31
35
  void rb_enable_interrupt(void);
32
36
  void rb_disable_interrupt(void);
@@ -71,13 +71,14 @@ add_define "HAVE_INOTIFY" if inotify = have_func('inotify_init', 'sys/inotify.h'
71
71
  add_define "HAVE_OLD_INOTIFY" if !inotify && have_macro('__NR_inotify_init', 'sys/syscall.h')
72
72
  add_define 'HAVE_WRITEV' if have_func('writev', 'sys/uio.h')
73
73
 
74
- have_func('rb_thread_check_ints')
74
+ have_func('rb_wait_for_single_fd')
75
+ have_func('rb_enable_interrupt')
75
76
  have_func('rb_time_new')
76
77
 
77
78
  # Minor platform details between *nix and Windows:
78
79
 
79
80
  if RUBY_PLATFORM =~ /(mswin|mingw|bccwin)/
80
- GNU_CHAIN = ENV['CROSS_COMPILING'] or $1 == 'mingw'
81
+ GNU_CHAIN = ENV['CROSS_COMPILING'] || $1 == 'mingw'
81
82
  OS_WIN32 = true
82
83
  add_define "OS_WIN32"
83
84
  else
@@ -17,7 +17,7 @@ add_define 'BUILD_FOR_RUBY'
17
17
  # Minor platform details between *nix and Windows:
18
18
 
19
19
  if RUBY_PLATFORM =~ /(mswin|mingw|bccwin)/
20
- GNU_CHAIN = ENV['CROSS_COMPILING'] or $1 == 'mingw'
20
+ GNU_CHAIN = ENV['CROSS_COMPILING'] || $1 == 'mingw'
21
21
  OS_WIN32 = true
22
22
  add_define "OS_WIN32"
23
23
  else
@@ -332,7 +332,7 @@ static VALUE t_get_peer_cert (VALUE self, VALUE signature)
332
332
  BIO_get_mem_ptr(out, &buf);
333
333
  ret = rb_str_new(buf->data, buf->length);
334
334
  X509_free(cert);
335
- BUF_MEM_free(buf);
335
+ BIO_free(out);
336
336
  }
337
337
  #endif
338
338
 
@@ -459,7 +459,7 @@ extern "C" int ssl_verify_wrapper(int preverify_ok, X509_STORE_CTX *ctx)
459
459
 
460
460
  ConnectionDescriptor *cd = dynamic_cast <ConnectionDescriptor*> (Bindable_t::GetObject(binding));
461
461
  result = (cd->VerifySslPeer(buf->data) == true ? 1 : 0);
462
- BUF_MEM_free(buf);
462
+ BIO_free(out);
463
463
 
464
464
  return result;
465
465
  }
@@ -271,7 +271,7 @@ module EventMachine
271
271
  psw = psw.call
272
272
  end
273
273
  #str = Base64::encode64("\0#{@args[:auth][:username]}\0#{psw}").chomp
274
- str = ["\0#{@args[:auth][:username]}\0#{psw}"].pack("m").chomp
274
+ str = ["\0#{@args[:auth][:username]}\0#{psw}"].pack("m").gsub(/\n/, '')
275
275
  send_data "AUTH PLAIN #{str}\r\n"
276
276
  @responder = :receive_auth_response
277
277
  else
@@ -1,3 +1,3 @@
1
1
  module EventMachine
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -1,8 +1,8 @@
1
- if RUBY_PLATFORM =~ /java/
1
+ if defined?(EventMachine.library_type) and EventMachine.library_type == :pure_ruby
2
+ # assume 'em/pure_ruby' was loaded already
3
+ elsif RUBY_PLATFORM =~ /java/
2
4
  require 'java'
3
5
  require 'jeventmachine'
4
- elsif defined?(EventMachine.library_type) and EventMachine.library_type == :pure_ruby
5
- # assume 'em/pure_ruby' was loaded already
6
6
  else
7
7
  begin
8
8
  require 'rubyeventmachine'
@@ -1,4 +1,6 @@
1
- require 'rake/gempackagetask'
1
+ require 'rubygems'
2
+ require 'rubygems/package_task'
3
+
2
4
  begin
3
5
  require 'rake/extensiontask'
4
6
  require 'rake/javaextensiontask'
@@ -12,7 +14,7 @@ rake-compiler gem seems to be missing. Please install it with
12
14
  MSG
13
15
  end
14
16
 
15
- Rake::GemPackageTask.new(GEMSPEC) do |pkg|
17
+ Gem::PackageTask.new(GEMSPEC) do |pkg|
16
18
  end
17
19
 
18
20
  if RUBY_PLATFORM =~ /java/
@@ -84,15 +86,3 @@ def gem_cmd(action, name, *args)
84
86
  end
85
87
 
86
88
  Rake::Task[:clean].enhance [:clobber_package]
87
-
88
- namespace :gem do
89
- desc 'Install gem (and sudo if required)'
90
- task :install => :package do
91
- gem_cmd(:install, "pkg/#{GEMSPEC.name}-#{GEMSPEC.version}.gem")
92
- end
93
-
94
- desc 'Uninstall gem (and sudo if required)'
95
- task :uninstall do
96
- gem_cmd(:uninstall, "#{GEMSPEC.name}", "-v=#{GEMSPEC.version}")
97
- end
98
- end
@@ -19,7 +19,7 @@ class TestSetSockOpt < Test::Unit::TestCase
19
19
  EM.run do
20
20
  EM.connect 'google.com', 80, Module.new {
21
21
  define_method :post_init do
22
- val = set_sock_opt Socket::SOL_SOCKET, Socket::SO_DEBUG, true
22
+ val = set_sock_opt Socket::SOL_SOCKET, Socket::SO_BROADCAST, true
23
23
  test.assert_equal 0, val
24
24
  EM.stop
25
25
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventmachine
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: x86-mingw32
12
12
  authors:
13
13
  - Francis Cianfrocca
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-09-08 00:00:00 Z
19
+ date: 2013-02-28 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rake-compiler
@@ -26,12 +26,12 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 61
29
+ hash: 57
30
30
  segments:
31
31
  - 0
32
32
  - 8
33
- - 1
34
- version: 0.8.1
33
+ - 3
34
+ version: 0.8.3
35
35
  type: :development
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
@@ -42,12 +42,13 @@ dependencies:
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- hash: 7
45
+ hash: 31
46
46
  segments:
47
47
  - 0
48
- - 7
48
+ - 8
49
+ - 5
49
50
  - 2
50
- version: 0.7.2
51
+ version: 0.8.5.2
51
52
  type: :development
52
53
  version_requirements: *id002
53
54
  - !ruby/object:Gem::Dependency
@@ -100,7 +101,9 @@ extra_rdoc_files:
100
101
  - docs/old/TODO
101
102
  files:
102
103
  - .gitignore
104
+ - .travis.yml
103
105
  - .yardopts
106
+ - CHANGELOG.md
104
107
  - GNU
105
108
  - Gemfile
106
109
  - LICENSE