eventmachine 0.12.6-x86-mswin32-60 → 0.12.8-x86-mswin32-60

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.
Files changed (116) hide show
  1. data/{docs/README → README} +21 -13
  2. data/Rakefile +14 -4
  3. data/docs/DEFERRABLES +0 -5
  4. data/docs/INSTALL +2 -4
  5. data/docs/LEGAL +1 -1
  6. data/docs/LIGHTWEIGHT_CONCURRENCY +0 -2
  7. data/docs/PURE_RUBY +0 -2
  8. data/docs/RELEASE_NOTES +0 -2
  9. data/docs/SMTP +0 -7
  10. data/docs/SPAWNED_PROCESSES +0 -4
  11. data/docs/TODO +0 -2
  12. data/eventmachine.gemspec +41 -32
  13. data/examples/ex_channel.rb +43 -0
  14. data/examples/ex_queue.rb +2 -0
  15. data/examples/helper.rb +2 -0
  16. data/ext/cmain.cpp +685 -586
  17. data/ext/cplusplus.cpp +15 -6
  18. data/ext/ed.cpp +1732 -1522
  19. data/ext/ed.h +407 -380
  20. data/ext/em.cpp +2263 -1937
  21. data/ext/em.h +223 -186
  22. data/ext/eventmachine.h +111 -98
  23. data/ext/eventmachine_cpp.h +1 -0
  24. data/ext/extconf.rb +4 -0
  25. data/ext/kb.cpp +81 -82
  26. data/ext/pipe.cpp +349 -351
  27. data/ext/project.h +21 -0
  28. data/ext/rubymain.cpp +1047 -847
  29. data/ext/ssl.cpp +38 -1
  30. data/ext/ssl.h +5 -1
  31. data/java/src/com/rubyeventmachine/Application.java +7 -3
  32. data/java/src/com/rubyeventmachine/EmReactor.java +16 -1
  33. data/java/src/com/rubyeventmachine/tests/ConnectTest.java +25 -3
  34. data/lib/{protocols → em}/buftok.rb +16 -5
  35. data/lib/em/callback.rb +26 -0
  36. data/lib/em/channel.rb +57 -0
  37. data/lib/em/connection.rb +505 -0
  38. data/lib/em/deferrable.rb +144 -165
  39. data/lib/em/file_watch.rb +54 -0
  40. data/lib/em/future.rb +24 -25
  41. data/lib/em/messages.rb +1 -1
  42. data/lib/em/process_watch.rb +44 -0
  43. data/lib/em/processes.rb +119 -113
  44. data/lib/em/protocols.rb +35 -0
  45. data/lib/em/protocols/header_and_content.rb +138 -0
  46. data/lib/em/protocols/httpclient.rb +263 -0
  47. data/lib/em/protocols/httpclient2.rb +582 -0
  48. data/lib/{protocols → em/protocols}/line_and_text.rb +2 -2
  49. data/lib/em/protocols/linetext2.rb +160 -0
  50. data/lib/{protocols → em/protocols}/memcache.rb +37 -7
  51. data/lib/em/protocols/object_protocol.rb +39 -0
  52. data/lib/em/protocols/postgres3.rb +247 -0
  53. data/lib/em/protocols/saslauth.rb +175 -0
  54. data/lib/em/protocols/smtpclient.rb +331 -0
  55. data/lib/em/protocols/smtpserver.rb +547 -0
  56. data/lib/em/protocols/stomp.rb +200 -0
  57. data/lib/{protocols → em/protocols}/tcptest.rb +21 -25
  58. data/lib/em/queue.rb +61 -0
  59. data/lib/em/spawnable.rb +53 -56
  60. data/lib/em/streamer.rb +92 -74
  61. data/lib/em/timers.rb +55 -0
  62. data/lib/em/version.rb +3 -0
  63. data/lib/eventmachine.rb +1636 -1926
  64. data/lib/evma.rb +1 -1
  65. data/lib/jeventmachine.rb +106 -101
  66. data/lib/pr_eventmachine.rb +47 -36
  67. data/tasks/project.rake +2 -1
  68. data/tests/client.crt +31 -0
  69. data/tests/client.key +51 -0
  70. data/tests/test_attach.rb +18 -0
  71. data/tests/test_basic.rb +285 -231
  72. data/tests/test_channel.rb +63 -0
  73. data/tests/test_connection_count.rb +2 -2
  74. data/tests/test_epoll.rb +162 -163
  75. data/tests/test_errors.rb +36 -36
  76. data/tests/test_exc.rb +22 -25
  77. data/tests/test_file_watch.rb +49 -0
  78. data/tests/test_futures.rb +77 -93
  79. data/tests/test_hc.rb +2 -2
  80. data/tests/test_httpclient.rb +55 -52
  81. data/tests/test_httpclient2.rb +153 -155
  82. data/tests/test_inactivity_timeout.rb +30 -0
  83. data/tests/test_kb.rb +8 -9
  84. data/tests/test_ltp2.rb +274 -277
  85. data/tests/test_next_tick.rb +135 -109
  86. data/tests/test_object_protocol.rb +37 -0
  87. data/tests/test_process_watch.rb +48 -0
  88. data/tests/test_processes.rb +128 -95
  89. data/tests/test_proxy_connection.rb +92 -0
  90. data/tests/test_pure.rb +1 -5
  91. data/tests/test_queue.rb +44 -0
  92. data/tests/test_running.rb +9 -14
  93. data/tests/test_sasl.rb +32 -34
  94. data/tests/test_send_file.rb +175 -176
  95. data/tests/test_servers.rb +37 -41
  96. data/tests/test_smtpserver.rb +47 -55
  97. data/tests/test_spawn.rb +284 -291
  98. data/tests/test_ssl_args.rb +1 -1
  99. data/tests/test_ssl_methods.rb +1 -1
  100. data/tests/test_ssl_verify.rb +82 -0
  101. data/tests/test_timers.rb +81 -88
  102. data/tests/test_ud.rb +0 -7
  103. data/tests/testem.rb +1 -1
  104. metadata +52 -36
  105. data/lib/em/eventable.rb +0 -39
  106. data/lib/eventmachine_version.rb +0 -31
  107. data/lib/protocols/header_and_content.rb +0 -129
  108. data/lib/protocols/httpcli2.rb +0 -803
  109. data/lib/protocols/httpclient.rb +0 -270
  110. data/lib/protocols/linetext2.rb +0 -161
  111. data/lib/protocols/postgres.rb +0 -261
  112. data/lib/protocols/saslauth.rb +0 -179
  113. data/lib/protocols/smtpclient.rb +0 -308
  114. data/lib/protocols/smtpserver.rb +0 -556
  115. data/lib/protocols/stomp.rb +0 -153
  116. data/tests/test_eventables.rb +0 -77
@@ -65,4 +65,4 @@ class TestSslArgs < Test::Unit::TestCase
65
65
  assert(false, 'should not have raised an exception')
66
66
  end
67
67
  end
68
- end
68
+ end if EM.ssl?
@@ -47,4 +47,4 @@ class TestSSLMethods < Test::Unit::TestCase
47
47
  assert($client_cert_value.is_a?(String))
48
48
  end
49
49
 
50
- end
50
+ end if EM.ssl?
@@ -0,0 +1,82 @@
1
+ $:.unshift "../lib"
2
+ require 'eventmachine'
3
+ require 'test/unit'
4
+
5
+ class TestSslVerify < Test::Unit::TestCase
6
+
7
+ def setup
8
+ $dir = File.dirname(File.expand_path(__FILE__)) + '/'
9
+ $cert_from_file = File.read($dir+'client.crt')
10
+ end
11
+
12
+ module Client
13
+ def connection_completed
14
+ start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
15
+ end
16
+
17
+ def ssl_handshake_completed
18
+ $client_handshake_completed = true
19
+ close_connection
20
+ end
21
+
22
+ def unbind
23
+ EM.stop_event_loop
24
+ end
25
+ end
26
+
27
+ module AcceptServer
28
+ def post_init
29
+ start_tls(:verify_peer => true)
30
+ end
31
+
32
+ def ssl_verify_peer(cert)
33
+ $cert_from_server = cert
34
+ true
35
+ end
36
+
37
+ def ssl_handshake_completed
38
+ $server_handshake_completed = true
39
+ end
40
+ end
41
+
42
+ module DenyServer
43
+ def post_init
44
+ start_tls(:verify_peer => true)
45
+ end
46
+
47
+ def ssl_verify_peer(cert)
48
+ $cert_from_server = cert
49
+ # Do not accept the peer. This should now cause the connection to shut down without the SSL handshake being completed.
50
+ false
51
+ end
52
+
53
+ def ssl_handshake_completed
54
+ $server_handshake_completed = true
55
+ end
56
+ end
57
+
58
+ def test_accept_server
59
+ $client_handshake_completed, $server_handshake_completed = false, false
60
+ EM.run {
61
+ EM.start_server("127.0.0.1", 16784, AcceptServer)
62
+ EM.connect("127.0.0.1", 16784, Client).instance_variable_get("@signature")
63
+ }
64
+
65
+ assert_equal($cert_from_file, $cert_from_server)
66
+ assert($client_handshake_completed)
67
+ assert($server_handshake_completed)
68
+ end
69
+
70
+ def test_deny_server
71
+ $client_handshake_completed, $server_handshake_completed = false, false
72
+ EM.run {
73
+ EM.start_server("127.0.0.1", 16784, DenyServer)
74
+ EM.connect("127.0.0.1", 16784, Client)
75
+ }
76
+
77
+ assert_equal($cert_from_file, $cert_from_server)
78
+ assert(!$client_handshake_completed)
79
+ assert(!$server_handshake_completed)
80
+ end
81
+
82
+ end
data/tests/test_timers.rb CHANGED
@@ -29,120 +29,113 @@ $:.unshift "../lib"
29
29
  require 'eventmachine'
30
30
  require 'test/unit'
31
31
 
32
-
33
32
  class TestTimers < Test::Unit::TestCase
34
33
 
35
- def setup
36
- end
37
-
38
- def teardown
39
- end
40
-
41
34
  def test_timer_with_block
42
- x = false
43
- EventMachine.run {
44
- EventMachine::Timer.new(0.25) {
45
- x = true
46
- EventMachine.stop
47
- }
48
- }
49
- assert x
35
+ x = false
36
+ EventMachine.run {
37
+ EventMachine::Timer.new(0.25) {
38
+ x = true
39
+ EventMachine.stop
40
+ }
41
+ }
42
+ assert x
50
43
  end
51
44
 
52
45
  def test_timer_with_proc
53
- x = false
54
- EventMachine.run {
55
- EventMachine::Timer.new(0.25, proc {
56
- x = true
57
- EventMachine.stop
58
- })
59
- }
60
- assert x
46
+ x = false
47
+ EventMachine.run {
48
+ EventMachine::Timer.new(0.25, proc {
49
+ x = true
50
+ EventMachine.stop
51
+ })
52
+ }
53
+ assert x
61
54
  end
62
55
 
63
56
  def test_timer_cancel
64
- x = true
65
- EventMachine.run {
66
- timer = EventMachine::Timer.new(0.25, proc { x = false })
67
- timer.cancel
68
- EventMachine::Timer.new(0.5, proc {EventMachine.stop})
69
- }
70
- assert x
57
+ x = true
58
+ EventMachine.run {
59
+ timer = EventMachine::Timer.new(0.25, proc { x = false })
60
+ timer.cancel
61
+ EventMachine::Timer.new(0.5, proc {EventMachine.stop})
62
+ }
63
+ assert x
71
64
  end
72
65
 
73
66
  def test_periodic_timer
74
- x = 0
75
- EventMachine.run {
76
- EventMachine::PeriodicTimer.new(0.1) do
77
- x += 1
78
- EventMachine.stop if x == 4
79
- end
80
- }
81
- assert( x == 4 )
67
+ x = 0
68
+ EventMachine.run {
69
+ EventMachine::PeriodicTimer.new(0.1) do
70
+ x += 1
71
+ EventMachine.stop if x == 4
72
+ end
73
+ }
74
+ assert( x == 4 )
82
75
  end
83
76
 
84
77
  def test_periodic_timer_cancel
85
- x = 0
86
- EventMachine.run {
87
- pt = EventMachine::PeriodicTimer.new(0.25, proc { x += 1 })
88
- pt.cancel
89
- EventMachine::Timer.new(0.5) {EventMachine.stop}
90
- }
91
- assert( x == 0 )
78
+ x = 0
79
+ EventMachine.run {
80
+ pt = EventMachine::PeriodicTimer.new(0.25, proc { x += 1 })
81
+ pt.cancel
82
+ EventMachine::Timer.new(0.5) {EventMachine.stop}
83
+ }
84
+ assert( x == 0 )
92
85
  end
93
86
 
94
87
  def test_periodic_timer_self_cancel
95
- x = 0
96
- EventMachine.run {
97
- pt = EventMachine::PeriodicTimer.new(0.1) {
98
- x += 1
99
- if x == 4
100
- pt.cancel
101
- EventMachine.stop
102
- end
103
- }
104
- }
105
- assert( x == 4 )
88
+ x = 0
89
+ EventMachine.run {
90
+ pt = EventMachine::PeriodicTimer.new(0.1) {
91
+ x += 1
92
+ if x == 4
93
+ pt.cancel
94
+ EventMachine.stop
95
+ end
96
+ }
97
+ }
98
+ assert( x == 4 )
106
99
  end
107
100
 
108
101
 
109
- # This test is only applicable to compiled versions of the reactor.
110
- # Pure ruby and java versions have no built-in limit on the number of outstanding timers.
111
- #
112
- def test_timer_change_max_outstanding
113
- ten_thousand_timers = proc {
114
- 10000.times {
115
- EM.add_timer(5) {}
116
- }
117
- }
118
- EM.run {
119
- if EM.library_type == :pure_ruby
120
- ten_thousand_timers.call
121
- elsif EM.library_type == :java
122
- ten_thousand_timers.call
123
- else
124
- begin
125
- assert_raises( RuntimeError ) {
126
- ten_thousand_timers.call
127
- }
128
- rescue Object
129
- p $!
130
- assert(false, $!.message)
131
- end
132
- end
133
- EM.stop
134
- }
102
+ # This test is only applicable to compiled versions of the reactor.
103
+ # Pure ruby and java versions have no built-in limit on the number of outstanding timers.
104
+ #
105
+ def test_timer_change_max_outstanding
106
+ ten_thousand_timers = proc {
107
+ 10000.times {
108
+ EM.add_timer(5) {}
109
+ }
110
+ }
111
+
112
+ EM.run {
113
+ if EM.library_type == :pure_ruby
114
+ ten_thousand_timers.call
115
+ elsif EM.library_type == :java
116
+ ten_thousand_timers.call
117
+ else
118
+ begin
119
+ assert_raises( RuntimeError ) {
120
+ ten_thousand_timers.call
121
+ }
122
+ rescue Object
123
+ p $!
124
+ assert(false, $!.message)
125
+ end
126
+ end
127
+ EM.stop
128
+ }
135
129
 
136
130
  assert(!EM.reactor_running?, 'Reactor running when it should not be.')
137
131
  assert( EM.get_max_timers != 10001 )
138
132
  EM.set_max_timers( 10001 )
139
133
  assert( EM.get_max_timers == 10001 )
140
134
 
141
- EM.run {
142
- ten_thousand_timers.call
143
- EM.stop
144
- }
145
- end
135
+ EM.run {
136
+ ten_thousand_timers.call
137
+ EM.stop
138
+ }
139
+ end
146
140
 
147
141
  end
148
-
data/tests/test_ud.rb CHANGED
@@ -30,14 +30,7 @@ require 'test/unit'
30
30
 
31
31
  class TestUserDefinedEvents < Test::Unit::TestCase
32
32
 
33
- def setup
34
- end
35
-
36
- def teardown
37
- end
38
-
39
33
  def test_a
40
34
  end
41
35
 
42
36
  end
43
-
data/tests/testem.rb CHANGED
@@ -28,4 +28,4 @@ end
28
28
 
29
29
  if __FILE__ == $0
30
30
  EmTestRunner.run
31
- end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventmachine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.6
4
+ version: 0.12.8
5
5
  platform: x86-mswin32-60
6
6
  authors:
7
7
  - Francis Cianfrocca
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-09 00:00:00 +00:00
12
+ date: 2009-05-23 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -19,24 +19,11 @@ executables: []
19
19
 
20
20
  extensions: []
21
21
 
22
- extra_rdoc_files:
23
- - docs/ChangeLog
24
- - docs/COPYING
25
- - docs/DEFERRABLES
26
- - docs/EPOLL
27
- - docs/GNU
28
- - docs/INSTALL
29
- - docs/KEYBOARD
30
- - docs/LEGAL
31
- - docs/LIGHTWEIGHT_CONCURRENCY
32
- - docs/PURE_RUBY
33
- - docs/README
34
- - docs/RELEASE_NOTES
35
- - docs/SMTP
36
- - docs/SPAWNED_PROCESSES
37
- - docs/TODO
22
+ extra_rdoc_files: []
23
+
38
24
  files:
39
25
  - .gitignore
26
+ - README
40
27
  - Rakefile
41
28
  - docs/COPYING
42
29
  - docs/ChangeLog
@@ -48,12 +35,14 @@ files:
48
35
  - docs/LEGAL
49
36
  - docs/LIGHTWEIGHT_CONCURRENCY
50
37
  - docs/PURE_RUBY
51
- - docs/README
52
38
  - docs/RELEASE_NOTES
53
39
  - docs/SMTP
54
40
  - docs/SPAWNED_PROCESSES
55
41
  - docs/TODO
56
42
  - eventmachine.gemspec
43
+ - examples/ex_channel.rb
44
+ - examples/ex_queue.rb
45
+ - examples/helper.rb
57
46
  - ext/binder.cpp
58
47
  - ext/binder.h
59
48
  - ext/cmain.cpp
@@ -104,15 +93,36 @@ files:
104
93
  - java/src/com/rubyeventmachine/tests/TestDatagrams.java
105
94
  - java/src/com/rubyeventmachine/tests/TestServers.java
106
95
  - java/src/com/rubyeventmachine/tests/TestTimers.java
96
+ - lib/em/buftok.rb
97
+ - lib/em/callback.rb
98
+ - lib/em/channel.rb
99
+ - lib/em/connection.rb
107
100
  - lib/em/deferrable.rb
108
- - lib/em/eventable.rb
101
+ - lib/em/file_watch.rb
109
102
  - lib/em/future.rb
110
103
  - lib/em/messages.rb
104
+ - lib/em/process_watch.rb
111
105
  - lib/em/processes.rb
106
+ - lib/em/protocols.rb
107
+ - lib/em/protocols/header_and_content.rb
108
+ - lib/em/protocols/httpclient.rb
109
+ - lib/em/protocols/httpclient2.rb
110
+ - lib/em/protocols/line_and_text.rb
111
+ - lib/em/protocols/linetext2.rb
112
+ - lib/em/protocols/memcache.rb
113
+ - lib/em/protocols/object_protocol.rb
114
+ - lib/em/protocols/postgres3.rb
115
+ - lib/em/protocols/saslauth.rb
116
+ - lib/em/protocols/smtpclient.rb
117
+ - lib/em/protocols/smtpserver.rb
118
+ - lib/em/protocols/stomp.rb
119
+ - lib/em/protocols/tcptest.rb
120
+ - lib/em/queue.rb
112
121
  - lib/em/spawnable.rb
113
122
  - lib/em/streamer.rb
123
+ - lib/em/timers.rb
124
+ - lib/em/version.rb
114
125
  - lib/eventmachine.rb
115
- - lib/eventmachine_version.rb
116
126
  - lib/evma.rb
117
127
  - lib/evma/callback.rb
118
128
  - lib/evma/container.rb
@@ -121,43 +131,38 @@ files:
121
131
  - lib/evma/reactor.rb
122
132
  - lib/jeventmachine.rb
123
133
  - lib/pr_eventmachine.rb
124
- - lib/protocols/buftok.rb
125
- - lib/protocols/header_and_content.rb
126
- - lib/protocols/httpcli2.rb
127
- - lib/protocols/httpclient.rb
128
- - lib/protocols/line_and_text.rb
129
- - lib/protocols/linetext2.rb
130
- - lib/protocols/memcache.rb
131
- - lib/protocols/postgres.rb
132
- - lib/protocols/saslauth.rb
133
- - lib/protocols/smtpclient.rb
134
- - lib/protocols/smtpserver.rb
135
- - lib/protocols/stomp.rb
136
- - lib/protocols/tcptest.rb
137
134
  - setup.rb
138
135
  - tasks/cpp.rake
139
136
  - tasks/project.rake
140
137
  - tasks/tests.rake
138
+ - tests/client.crt
139
+ - tests/client.key
141
140
  - tests/test_attach.rb
142
141
  - tests/test_basic.rb
142
+ - tests/test_channel.rb
143
143
  - tests/test_connection_count.rb
144
144
  - tests/test_defer.rb
145
145
  - tests/test_epoll.rb
146
146
  - tests/test_error_handler.rb
147
147
  - tests/test_errors.rb
148
- - tests/test_eventables.rb
149
148
  - tests/test_exc.rb
149
+ - tests/test_file_watch.rb
150
150
  - tests/test_futures.rb
151
151
  - tests/test_handler_check.rb
152
152
  - tests/test_hc.rb
153
153
  - tests/test_httpclient.rb
154
154
  - tests/test_httpclient2.rb
155
+ - tests/test_inactivity_timeout.rb
155
156
  - tests/test_kb.rb
156
157
  - tests/test_ltp.rb
157
158
  - tests/test_ltp2.rb
158
159
  - tests/test_next_tick.rb
160
+ - tests/test_object_protocol.rb
161
+ - tests/test_process_watch.rb
159
162
  - tests/test_processes.rb
163
+ - tests/test_proxy_connection.rb
160
164
  - tests/test_pure.rb
165
+ - tests/test_queue.rb
161
166
  - tests/test_running.rb
162
167
  - tests/test_sasl.rb
163
168
  - tests/test_send_file.rb
@@ -167,6 +172,7 @@ files:
167
172
  - tests/test_spawn.rb
168
173
  - tests/test_ssl_args.rb
169
174
  - tests/test_ssl_methods.rb
175
+ - tests/test_ssl_verify.rb
170
176
  - tests/test_timers.rb
171
177
  - tests/test_ud.rb
172
178
  - tests/testem.rb
@@ -180,8 +186,18 @@ rdoc_options:
180
186
  - --title
181
187
  - EventMachine
182
188
  - --main
183
- - docs/README
189
+ - README
184
190
  - --line-numbers
191
+ - -x
192
+ - lib/em/version
193
+ - -x
194
+ - lib/emva
195
+ - -x
196
+ - lib/evma/
197
+ - -x
198
+ - lib/pr_eventmachine
199
+ - -x
200
+ - lib/jeventmachine
185
201
  require_paths:
186
202
  - lib
187
203
  required_ruby_version: !ruby/object:Gem::Requirement