sonixlabs-eventmachine-java 1.0.0.rc.7-java → 1.0.3.1-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -12
- data/.travis.yml +12 -0
- data/CHANGELOG.md +33 -0
- data/Gemfile +0 -1
- data/README.md +2 -2
- data/README_JP.md +10 -2
- data/eventmachine.gemspec +10 -7
- data/ext/binder.cpp +1 -1
- data/ext/cmain.cpp +11 -0
- data/ext/ed.cpp +22 -7
- data/ext/ed.h +5 -5
- data/ext/em.cpp +64 -66
- data/ext/em.h +10 -5
- data/ext/eventmachine.h +1 -0
- data/ext/extconf.rb +4 -3
- data/ext/fastfilereader/extconf.rb +1 -1
- data/ext/rubymain.cpp +22 -1
- data/ext/ssl.cpp +1 -1
- data/java/.classpath +1 -3
- data/java/.gitignore +1 -0
- data/java/src/com/rubyeventmachine/DatagramPacket.java +13 -0
- data/java/src/com/rubyeventmachine/EmReactor.java +502 -561
- data/java/src/com/rubyeventmachine/EventCallback.java +7 -0
- data/java/src/com/rubyeventmachine/EventCode.java +26 -0
- data/java/src/com/rubyeventmachine/EventableChannel.java +102 -42
- data/java/src/com/rubyeventmachine/EventableDatagramChannel.java +146 -161
- data/java/src/com/rubyeventmachine/EventableSocketChannel.java +371 -334
- data/java/src/com/rubyeventmachine/SslBox.java +310 -0
- data/lib/em/iterator.rb +5 -44
- data/lib/em/processes.rb +1 -1
- data/lib/em/protocols/httpclient.rb +2 -2
- data/lib/em/protocols/line_protocol.rb +2 -2
- data/lib/em/protocols/smtpclient.rb +1 -1
- data/lib/em/protocols/smtpserver.rb +10 -7
- data/lib/em/protocols/stomp.rb +5 -2
- data/lib/em/protocols.rb +1 -0
- data/lib/em/version.rb +1 -1
- data/lib/eventmachine.rb +35 -14
- data/lib/jeventmachine.rb +65 -18
- data/rakelib/package.rake +15 -18
- data/tests/server.crt +36 -0
- data/tests/server.key +51 -0
- data/tests/test_attach.rb +24 -0
- data/tests/test_connection_count.rb +21 -1
- data/tests/test_epoll.rb +15 -0
- data/tests/test_httpclient2.rb +5 -0
- data/tests/test_idle_connection.rb +6 -4
- data/tests/test_iterator.rb +97 -0
- data/tests/test_line_protocol.rb +33 -0
- data/tests/test_pause.rb +24 -0
- data/tests/test_set_sock_opt.rb +1 -1
- data/tests/test_ssl_echo_data.rb +60 -0
- data/tests/test_ssl_methods.rb +15 -7
- data/tests/test_ssl_verify.rb +4 -4
- data/tests/test_stomp.rb +37 -0
- data/tests/test_system.rb +42 -0
- metadata +45 -42
- data/lib/rubyeventmachine.jar +0 -0
data/ext/extconf.rb
CHANGED
@@ -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('
|
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']
|
81
|
+
GNU_CHAIN = ENV['CROSS_COMPILING'] || $1 == 'mingw'
|
81
82
|
OS_WIN32 = true
|
82
83
|
add_define "OS_WIN32"
|
83
84
|
else
|
@@ -169,7 +170,7 @@ TRY_LINK.sub!('$(CC)', '$(CXX)')
|
|
169
170
|
add_define 'HAVE_MAKE_PAIR' if try_link(<<SRC, '-lstdc++')
|
170
171
|
#include <utility>
|
171
172
|
using namespace std;
|
172
|
-
int main(){ pair<int,int> tuple = make_pair(1,2); }
|
173
|
+
int main(){ pair<const int,int> tuple = make_pair(1,2); }
|
173
174
|
SRC
|
174
175
|
TRY_LINK.sub!('$(CXX)', '$(CC)')
|
175
176
|
|
@@ -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']
|
20
|
+
GNU_CHAIN = ENV['CROSS_COMPILING'] || $1 == 'mingw'
|
21
21
|
OS_WIN32 = true
|
22
22
|
add_define "OS_WIN32"
|
23
23
|
else
|
data/ext/rubymain.cpp
CHANGED
@@ -273,6 +273,17 @@ static VALUE t_start_unix_server (VALUE self, VALUE filename)
|
|
273
273
|
return ULONG2NUM (f);
|
274
274
|
}
|
275
275
|
|
276
|
+
/********************
|
277
|
+
t_attach_sd
|
278
|
+
********************/
|
279
|
+
|
280
|
+
static VALUE t_attach_sd(VALUE self, VALUE sd)
|
281
|
+
{
|
282
|
+
const unsigned long f = evma_attach_sd(FIX2INT(sd));
|
283
|
+
if (!f)
|
284
|
+
rb_raise (rb_eRuntimeError, "%s", "no socket descriptor acceptor");
|
285
|
+
return ULONG2NUM (f);
|
286
|
+
}
|
276
287
|
|
277
288
|
|
278
289
|
/***********
|
@@ -332,7 +343,7 @@ static VALUE t_get_peer_cert (VALUE self, VALUE signature)
|
|
332
343
|
BIO_get_mem_ptr(out, &buf);
|
333
344
|
ret = rb_str_new(buf->data, buf->length);
|
334
345
|
X509_free(cert);
|
335
|
-
|
346
|
+
BIO_free(out);
|
336
347
|
}
|
337
348
|
#endif
|
338
349
|
|
@@ -566,6 +577,14 @@ static VALUE t_detach_fd (VALUE self, VALUE signature)
|
|
566
577
|
return INT2NUM(evma_detach_fd (NUM2ULONG (signature)));
|
567
578
|
}
|
568
579
|
|
580
|
+
/*********************
|
581
|
+
t_get_file_descriptor
|
582
|
+
*********************/
|
583
|
+
static VALUE t_get_file_descriptor (VALUE self, VALUE signature)
|
584
|
+
{
|
585
|
+
return INT2NUM(evma_get_file_descriptor (NUM2ULONG (signature)));
|
586
|
+
}
|
587
|
+
|
569
588
|
/**************
|
570
589
|
t_get_sock_opt
|
571
590
|
**************/
|
@@ -1204,6 +1223,7 @@ extern "C" void Init_rubyeventmachine()
|
|
1204
1223
|
rb_define_module_function (EmModule, "start_tcp_server", (VALUE(*)(...))t_start_server, 2);
|
1205
1224
|
rb_define_module_function (EmModule, "stop_tcp_server", (VALUE(*)(...))t_stop_server, 1);
|
1206
1225
|
rb_define_module_function (EmModule, "start_unix_server", (VALUE(*)(...))t_start_unix_server, 1);
|
1226
|
+
rb_define_module_function (EmModule, "attach_sd", (VALUE(*)(...))t_attach_sd, 1);
|
1207
1227
|
rb_define_module_function (EmModule, "set_tls_parms", (VALUE(*)(...))t_set_tls_parms, 4);
|
1208
1228
|
rb_define_module_function (EmModule, "start_tls", (VALUE(*)(...))t_start_tls, 1);
|
1209
1229
|
rb_define_module_function (EmModule, "get_peer_cert", (VALUE(*)(...))t_get_peer_cert, 1);
|
@@ -1217,6 +1237,7 @@ extern "C" void Init_rubyeventmachine()
|
|
1217
1237
|
|
1218
1238
|
rb_define_module_function (EmModule, "attach_fd", (VALUE (*)(...))t_attach_fd, 2);
|
1219
1239
|
rb_define_module_function (EmModule, "detach_fd", (VALUE (*)(...))t_detach_fd, 1);
|
1240
|
+
rb_define_module_function (EmModule, "get_file_descriptor", (VALUE (*)(...))t_get_file_descriptor, 1);
|
1220
1241
|
rb_define_module_function (EmModule, "get_sock_opt", (VALUE (*)(...))t_get_sock_opt, 3);
|
1221
1242
|
rb_define_module_function (EmModule, "set_sock_opt", (VALUE (*)(...))t_set_sock_opt, 4);
|
1222
1243
|
rb_define_module_function (EmModule, "set_notify_readable", (VALUE (*)(...))t_set_notify_readable, 2);
|
data/ext/ssl.cpp
CHANGED
@@ -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
|
-
|
462
|
+
BIO_free(out);
|
463
463
|
|
464
464
|
return result;
|
465
465
|
}
|
data/java/.classpath
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<classpath>
|
3
3
|
<classpathentry kind="src" path="src"/>
|
4
|
-
<classpathentry excluding="src/" kind="src" path=""/>
|
5
4
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
6
|
-
<classpathentry kind="
|
7
|
-
<classpathentry kind="output" path="src"/>
|
5
|
+
<classpathentry kind="output" path="bin"/>
|
8
6
|
</classpath>
|
data/java/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
/bin
|
@@ -0,0 +1,13 @@
|
|
1
|
+
package com.rubyeventmachine;
|
2
|
+
|
3
|
+
import java.net.SocketAddress;
|
4
|
+
import java.nio.ByteBuffer;
|
5
|
+
|
6
|
+
class DatagramPacket {
|
7
|
+
public ByteBuffer bb;
|
8
|
+
public SocketAddress recipient;
|
9
|
+
public DatagramPacket (ByteBuffer _bb, SocketAddress _recipient) {
|
10
|
+
bb = _bb;
|
11
|
+
recipient = _recipient;
|
12
|
+
}
|
13
|
+
}
|