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

Sign up to get free protection for your applications and to get access to all the features.
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