tem_multi_proxy 0.2.4 → 0.2.5
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.
- data/CHANGELOG +2 -0
- data/README +0 -1
- data/Rakefile +11 -4
- data/bin/tem_multi_proxy +11 -0
- data/bin/tem_multi_proxy_query +10 -0
- data/lib/tem_multi_proxy/client.rb +15 -2
- data/lib/tem_multi_proxy/manager.rb +19 -1
- data/lib/tem_multi_proxy/server.rb +6 -0
- data/lib/tem_multi_proxy.rb +6 -0
- data/tem_multi_proxy.gemspec +8 -5
- metadata +13 -3
data/CHANGELOG
CHANGED
data/README
CHANGED
@@ -11,4 +11,3 @@ Note on testing: since the proxy is entirely event-driven, testing it would be
|
|
11
11
|
a pain, or I don't know how to do it easily yet. Therefore I'm not going to
|
12
12
|
write complex tests for 200 lines of code that I don't expect to change ever
|
13
13
|
again. Contributions are welcome though :)
|
14
|
-
|
data/Rakefile
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
+
# Rakefile for the tem_multi_proxy gem.
|
2
|
+
#
|
3
|
+
# Author:: Victor Costan
|
4
|
+
# Copyright:: Copyright (C) 2009 Massachusetts Institute of Technology
|
5
|
+
# License:: MIT
|
6
|
+
|
1
7
|
require 'rubygems'
|
2
8
|
gem 'echoe'
|
3
9
|
require 'echoe'
|
4
10
|
|
5
11
|
Echoe.new('tem_multi_proxy') do |p|
|
6
|
-
p.project = 'tem'
|
12
|
+
p.project = 'tem' # rubyforge project
|
7
13
|
p.docs_host = "costan@rubyforge.org:/var/www/gforge-projects/tem/rdoc/"
|
8
14
|
|
9
15
|
p.author = 'Victor Costan'
|
@@ -11,11 +17,12 @@ Echoe.new('tem_multi_proxy') do |p|
|
|
11
17
|
p.summary = 'Maintains TEM proxies for all the physically attached TEMs.'
|
12
18
|
p.url = 'http://tem.rubyforge.org'
|
13
19
|
p.dependencies = ['rbtree >=0.2.1',
|
14
|
-
'smartcard >=0.4.
|
20
|
+
'smartcard >=0.4.6',
|
21
|
+
'tem_ruby >=0.11.7',
|
15
22
|
'zerg_support >=0.0.9']
|
16
23
|
|
17
|
-
p.need_tar_gz = !
|
18
|
-
p.need_zip = !
|
24
|
+
p.need_tar_gz = !Gem.win_platform?
|
25
|
+
p.need_zip = !Gem.win_platform?
|
19
26
|
p.rdoc_pattern = /^(lib|bin|tasks|ext)|^BUILD|^README|^CHANGELOG|^TODO|^LICENSE|^COPYING$/
|
20
27
|
end
|
21
28
|
|
data/bin/tem_multi_proxy
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Launcher for a tem_multi_proxy server.
|
4
|
+
#
|
5
|
+
# Author:: Victor Costan
|
6
|
+
# Copyright:: Copyright (C) 2009 Massachusetts Institute of Technology
|
7
|
+
# License:: MIT
|
8
|
+
#
|
9
|
+
# Usage: tem_multi_proxy [rpc port]
|
10
|
+
# The default RPC port is 9000. The RPC can be used with the tem_multi_proxy
|
11
|
+
# client library to obtain information about the cards connected to the system
|
12
|
+
# running tem_multi_proxy.
|
2
13
|
|
3
14
|
require 'rubygems'
|
4
15
|
require 'tem_multi_proxy'
|
data/bin/tem_multi_proxy_query
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Queries a tem_multi_proxy server about the smartcards connected to it via RPC.
|
4
|
+
#
|
5
|
+
# Author:: Victor Costan
|
6
|
+
# Copyright:: Copyright (C) 2009 Massachusetts Institute of Technology
|
7
|
+
# License:: MIT
|
8
|
+
#
|
9
|
+
# Usage: tem_multi_proxy_query [host[:port]]
|
10
|
+
# The host:port should point to the RPC port of the tem_multi_proxy server.
|
11
|
+
# The default host is localhost, and the default port is 9000.
|
2
12
|
|
3
13
|
require 'rubygems'
|
4
14
|
require 'tem_multi_proxy'
|
@@ -1,6 +1,19 @@
|
|
1
|
+
# RPC client for a tem_multi_proxy server.
|
2
|
+
#
|
3
|
+
# Author:: Victor Costan
|
4
|
+
# Copyright:: Copyright (C) 2009 Massachusetts Institute of Technology
|
5
|
+
# License:: MIT
|
6
|
+
|
1
7
|
# :nodoc: namespace
|
2
8
|
module Tem::MultiProxy
|
3
|
-
|
9
|
+
|
10
|
+
|
11
|
+
# RPC client for a tem_multi_proxy server.
|
12
|
+
#
|
13
|
+
# The client supports the RPC server's interface for obtaining administrative
|
14
|
+
# information about the cards connected to it. To communicate with the
|
15
|
+
# smart-cards, use the transports in the smartcard gem (see the Smartcard::Iso
|
16
|
+
# namespace).
|
4
17
|
class Client
|
5
18
|
Protocol = Zerg::Support::Protocols::ObjectProtocol
|
6
19
|
Adapter = Zerg::Support::Sockets::ProtocolAdapter.adapter_module Protocol
|
@@ -27,6 +40,6 @@ class Client
|
|
27
40
|
:opts => { :host => server_host, :port => port } }
|
28
41
|
end
|
29
42
|
end
|
30
|
-
end
|
43
|
+
end # class Tem::MultiProxy::Client
|
31
44
|
|
32
45
|
end # namespace Tem::MultiProxy
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# Manages the mapping between live TEMs and proxy processes.
|
2
|
+
#
|
3
|
+
# Author:: Victor Costan
|
4
|
+
# Copyright:: Copyright (C) 2009 Massachusetts Institute of Technology
|
5
|
+
# License:: MIT
|
6
|
+
|
1
7
|
require 'logger'
|
2
8
|
require 'rbtree'
|
3
9
|
require 'set'
|
@@ -6,6 +12,18 @@ require 'set'
|
|
6
12
|
# :nodoc: namespace
|
7
13
|
module Tem::MultiProxy
|
8
14
|
|
15
|
+
|
16
|
+
# Manages the mapping between live smart-cards and proxy processes.
|
17
|
+
#
|
18
|
+
# This class is intended to live as a singleton instance, though that is not
|
19
|
+
# enforced. The instance does its work in a dedicated thread which spins inside
|
20
|
+
# the management_loop method. Information about the live smartcards is returned
|
21
|
+
# by the tem_ports method.
|
22
|
+
#
|
23
|
+
# While the management thread is spinning, it actively maintains a one-to-one
|
24
|
+
# mapping between connected smart-cards and proxy processes, by spawning new
|
25
|
+
# processes when cards are connected, and killing processes when cards are
|
26
|
+
# disconnected.
|
9
27
|
class Manager
|
10
28
|
def initialize
|
11
29
|
@pcsc_context = Smartcard::PCSC::Context.new(Smartcard::PCSC::SCOPE_SYSTEM)
|
@@ -139,6 +157,6 @@ class Manager
|
|
139
157
|
Kernel.sleep 1
|
140
158
|
end
|
141
159
|
end
|
142
|
-
end
|
160
|
+
end # class Tem::MultiProxy::Manager
|
143
161
|
|
144
162
|
end # namespace Tem::MultiProxy
|
data/lib/tem_multi_proxy.rb
CHANGED
data/tem_multi_proxy.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{tem_multi_proxy}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.5"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Victor Costan"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-11-09}
|
10
10
|
s.description = %q{Maintains TEM proxies for all the physically attached TEMs.}
|
11
11
|
s.email = %q{victor@costan.us}
|
12
12
|
s.executables = ["tem_multi_proxy", "tem_multi_proxy_query"]
|
@@ -25,16 +25,19 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
27
|
s.add_runtime_dependency(%q<rbtree>, [">= 0.2.1"])
|
28
|
-
s.add_runtime_dependency(%q<smartcard>, [">= 0.4.
|
28
|
+
s.add_runtime_dependency(%q<smartcard>, [">= 0.4.6"])
|
29
|
+
s.add_runtime_dependency(%q<tem_ruby>, [">= 0.11.7"])
|
29
30
|
s.add_runtime_dependency(%q<zerg_support>, [">= 0.0.9"])
|
30
31
|
else
|
31
32
|
s.add_dependency(%q<rbtree>, [">= 0.2.1"])
|
32
|
-
s.add_dependency(%q<smartcard>, [">= 0.4.
|
33
|
+
s.add_dependency(%q<smartcard>, [">= 0.4.6"])
|
34
|
+
s.add_dependency(%q<tem_ruby>, [">= 0.11.7"])
|
33
35
|
s.add_dependency(%q<zerg_support>, [">= 0.0.9"])
|
34
36
|
end
|
35
37
|
else
|
36
38
|
s.add_dependency(%q<rbtree>, [">= 0.2.1"])
|
37
|
-
s.add_dependency(%q<smartcard>, [">= 0.4.
|
39
|
+
s.add_dependency(%q<smartcard>, [">= 0.4.6"])
|
40
|
+
s.add_dependency(%q<tem_ruby>, [">= 0.11.7"])
|
38
41
|
s.add_dependency(%q<zerg_support>, [">= 0.0.9"])
|
39
42
|
end
|
40
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tem_multi_proxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Costan
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-09 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -30,7 +30,17 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.4.
|
33
|
+
version: 0.4.6
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: tem_ruby
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.11.7
|
34
44
|
version:
|
35
45
|
- !ruby/object:Gem::Dependency
|
36
46
|
name: zerg_support
|