arachni-rpc 0.1.3 → 0.2.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +9 -3
- data/LICENSE.md +1 -1
- data/README.md +28 -34
- data/Rakefile +16 -19
- data/lib/arachni/rpc.rb +4 -8
- data/lib/arachni/rpc/client.rb +236 -0
- data/lib/arachni/rpc/client/handler.rb +167 -0
- data/lib/arachni/rpc/exceptions.rb +14 -38
- data/lib/arachni/rpc/message.rb +7 -15
- data/lib/arachni/rpc/protocol.rb +103 -0
- data/lib/arachni/rpc/proxy.rb +86 -0
- data/lib/arachni/rpc/request.rb +18 -36
- data/lib/arachni/rpc/response.rb +21 -35
- data/lib/arachni/rpc/server.rb +278 -0
- data/lib/arachni/rpc/server/handler.rb +145 -0
- data/lib/arachni/rpc/version.rb +3 -1
- data/spec/arachni/rpc/client_spec.rb +400 -0
- data/spec/arachni/rpc/exceptions_spec.rb +77 -0
- data/spec/arachni/rpc/message_spec.rb +47 -0
- data/spec/arachni/rpc/proxy_spec.rb +99 -0
- data/spec/arachni/rpc/request_spec.rb +53 -0
- data/spec/arachni/rpc/response_spec.rb +49 -0
- data/spec/arachni/rpc/server_spec.rb +129 -0
- data/spec/pems/cacert.pem +37 -0
- data/spec/pems/client/cert.pem +37 -0
- data/spec/pems/client/foo-cert.pem +39 -0
- data/spec/pems/client/foo-key.pem +51 -0
- data/spec/pems/client/key.pem +51 -0
- data/spec/pems/server/cert.pem +37 -0
- data/spec/pems/server/key.pem +51 -0
- data/spec/servers/basic.rb +3 -0
- data/spec/servers/server.rb +83 -0
- data/spec/servers/unix_socket.rb +8 -0
- data/spec/servers/with_ssl_primitives.rb +11 -0
- data/spec/spec_helper.rb +39 -0
- metadata +78 -21
- data/lib/arachni/rpc/remote_object_mapper.rb +0 -65
metadata
CHANGED
@@ -1,19 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arachni-rpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tasos Laskos
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
date: 2014-08-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: arachni-reactor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.0.beta2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.0.beta2
|
27
|
+
description: |2
|
28
|
+
Arachni::RPC is a simple and lightweight Remote Procedure Call protocol
|
29
|
+
used to provide the basis for Arachni's distributed infrastructure.
|
30
|
+
email: tasos.laskos@arachni-scanner.com
|
17
31
|
executables: []
|
18
32
|
extensions: []
|
19
33
|
extra_rdoc_files:
|
@@ -21,40 +35,83 @@ extra_rdoc_files:
|
|
21
35
|
- LICENSE.md
|
22
36
|
- CHANGELOG.md
|
23
37
|
files:
|
38
|
+
- CHANGELOG.md
|
39
|
+
- LICENSE.md
|
24
40
|
- README.md
|
25
41
|
- Rakefile
|
26
|
-
- LICENSE.md
|
27
|
-
- CHANGELOG.md
|
28
42
|
- lib/arachni/rpc.rb
|
43
|
+
- lib/arachni/rpc/client.rb
|
44
|
+
- lib/arachni/rpc/client/handler.rb
|
45
|
+
- lib/arachni/rpc/exceptions.rb
|
29
46
|
- lib/arachni/rpc/message.rb
|
30
|
-
- lib/arachni/rpc/
|
47
|
+
- lib/arachni/rpc/protocol.rb
|
48
|
+
- lib/arachni/rpc/proxy.rb
|
31
49
|
- lib/arachni/rpc/request.rb
|
50
|
+
- lib/arachni/rpc/response.rb
|
51
|
+
- lib/arachni/rpc/server.rb
|
52
|
+
- lib/arachni/rpc/server/handler.rb
|
32
53
|
- lib/arachni/rpc/version.rb
|
33
|
-
-
|
34
|
-
-
|
54
|
+
- spec/arachni/rpc/client_spec.rb
|
55
|
+
- spec/arachni/rpc/exceptions_spec.rb
|
56
|
+
- spec/arachni/rpc/message_spec.rb
|
57
|
+
- spec/arachni/rpc/proxy_spec.rb
|
58
|
+
- spec/arachni/rpc/request_spec.rb
|
59
|
+
- spec/arachni/rpc/response_spec.rb
|
60
|
+
- spec/arachni/rpc/server_spec.rb
|
61
|
+
- spec/pems/cacert.pem
|
62
|
+
- spec/pems/client/cert.pem
|
63
|
+
- spec/pems/client/foo-cert.pem
|
64
|
+
- spec/pems/client/foo-key.pem
|
65
|
+
- spec/pems/client/key.pem
|
66
|
+
- spec/pems/server/cert.pem
|
67
|
+
- spec/pems/server/key.pem
|
68
|
+
- spec/servers/basic.rb
|
69
|
+
- spec/servers/server.rb
|
70
|
+
- spec/servers/unix_socket.rb
|
71
|
+
- spec/servers/with_ssl_primitives.rb
|
72
|
+
- spec/spec_helper.rb
|
35
73
|
homepage: https://github.com/Arachni/arachni-rpc
|
36
74
|
licenses: []
|
75
|
+
metadata: {}
|
37
76
|
post_install_message:
|
38
77
|
rdoc_options:
|
39
|
-
- --charset=UTF-8
|
78
|
+
- "--charset=UTF-8"
|
40
79
|
require_paths:
|
41
80
|
- lib
|
42
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
82
|
requirements:
|
45
|
-
- -
|
83
|
+
- - ">="
|
46
84
|
- !ruby/object:Gem::Version
|
47
85
|
version: '0'
|
48
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
87
|
requirements:
|
51
|
-
- -
|
88
|
+
- - ">="
|
52
89
|
- !ruby/object:Gem::Version
|
53
90
|
version: '0'
|
54
91
|
requirements: []
|
55
92
|
rubyforge_project:
|
56
|
-
rubygems_version:
|
93
|
+
rubygems_version: 2.2.2
|
57
94
|
signing_key:
|
58
|
-
specification_version:
|
59
|
-
summary: The RPC protocol
|
60
|
-
test_files:
|
95
|
+
specification_version: 4
|
96
|
+
summary: The RPC protocol of the Arachni Framework.
|
97
|
+
test_files:
|
98
|
+
- spec/pems/server/cert.pem
|
99
|
+
- spec/pems/server/key.pem
|
100
|
+
- spec/pems/cacert.pem
|
101
|
+
- spec/pems/client/foo-key.pem
|
102
|
+
- spec/pems/client/cert.pem
|
103
|
+
- spec/pems/client/foo-cert.pem
|
104
|
+
- spec/pems/client/key.pem
|
105
|
+
- spec/servers/with_ssl_primitives.rb
|
106
|
+
- spec/servers/unix_socket.rb
|
107
|
+
- spec/servers/server.rb
|
108
|
+
- spec/servers/basic.rb
|
109
|
+
- spec/spec_helper.rb
|
110
|
+
- spec/arachni/rpc/client_spec.rb
|
111
|
+
- spec/arachni/rpc/server_spec.rb
|
112
|
+
- spec/arachni/rpc/request_spec.rb
|
113
|
+
- spec/arachni/rpc/message_spec.rb
|
114
|
+
- spec/arachni/rpc/response_spec.rb
|
115
|
+
- spec/arachni/rpc/exceptions_spec.rb
|
116
|
+
- spec/arachni/rpc/proxy_spec.rb
|
117
|
+
has_rdoc:
|
@@ -1,65 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
|
3
|
-
This file is part of the Arachni-RPC project and may be subject to
|
4
|
-
redistribution and commercial restrictions. Please see the Arachni-RPC
|
5
|
-
web site for more information on licensing and terms of use.
|
6
|
-
|
7
|
-
=end
|
8
|
-
|
9
|
-
require File.join( File.expand_path( File.dirname( __FILE__ ) ), '../', 'rpc' )
|
10
|
-
|
11
|
-
module Arachni
|
12
|
-
module RPC
|
13
|
-
|
14
|
-
#
|
15
|
-
# Maps the methods of remote objects to local ones.
|
16
|
-
# (Well, not really, it just passes the message along to the remote end.)
|
17
|
-
#
|
18
|
-
# You start like:
|
19
|
-
#
|
20
|
-
# server = Arachni::RPC::EM::Client.new( host: 'localhost', port: 7331 )
|
21
|
-
# bench = Arachni::RPC::EM::Client::Mapper.new( server, 'bench' )
|
22
|
-
#
|
23
|
-
# And it allows you to do this:
|
24
|
-
#
|
25
|
-
# res = bench.foo( 1, 2, 3 )
|
26
|
-
#
|
27
|
-
# Instead of:
|
28
|
-
#
|
29
|
-
# res = client.call( 'bench.foo', 1, 2, 3 )
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
# The server on the other end must have an appropriate handler set, like:
|
34
|
-
#
|
35
|
-
# class Bench
|
36
|
-
# def foo( i = 0 )
|
37
|
-
# return i
|
38
|
-
# end
|
39
|
-
# end
|
40
|
-
#
|
41
|
-
# server = Arachni::RPC::EM::Server.new( host: 'localhost', port: 7331 )
|
42
|
-
# server.add_handler( 'bench', Bench.new )
|
43
|
-
#
|
44
|
-
# @author: Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
45
|
-
#
|
46
|
-
class RemoteObjectMapper
|
47
|
-
|
48
|
-
def initialize( server, remote )
|
49
|
-
@server = server
|
50
|
-
@remote = remote
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
54
|
-
#
|
55
|
-
# Used to provide the illusion of locality for remote methods
|
56
|
-
#
|
57
|
-
def method_missing( sym, *args, &block )
|
58
|
-
call = "#{@remote}.#{sym.to_s}"
|
59
|
-
@server.call( call, *args, &block )
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
65
|
-
end
|