socket_duplex 1.1.7 → 1.1.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 396d97092eb58854d336f76c7058737967201b95
4
- data.tar.gz: b28000e38753d974e7442f0209b28dc6efe4a3e3
3
+ metadata.gz: f2b398ca7958f3ac91f2e8ad88c287ae4a529e4a
4
+ data.tar.gz: 0a75de5c20bf83771e1b5e8890a67afcb8da039d
5
5
  SHA512:
6
- metadata.gz: 9a53ca6192b230c303f6f0e2bc9069fcd30cf27f1436af1fcab07f62f0b044cc23598f707903a73cccca9afc53bd70b2250d7b7290c030a686b650593312ef4f
7
- data.tar.gz: e9728db7f2ba14f3d78101753b6c12f094ff6bca5c50983780e36b2fd735b5672fe08c95bf4409818056cffa4d0f2988ea47e5cf28b5a865bbea62acf98eee89
6
+ metadata.gz: c79fff5c1468edc7eb0a1466fabf42035dcf9aeb994c252b7012e57ec8274f2195127ac7e301c08bc8c86212f0193877ec66680c27929ba03ace7dc117541b6a
7
+ data.tar.gz: 915e4c13027ced61b6511253ce2443432f9f33e57ed9dda092f93a4584f6034e98500a27f669c5af675b7321796fa2f0c258507c1ddaff5dd95b927a8ade7087
data/lib/socket_duplex.rb CHANGED
@@ -12,32 +12,24 @@ module Rack
12
12
  def initialize(app, socket_path, secful_key, verify_mode=OpenSSL::SSL::VERIFY_PEER)
13
13
  @app, @socket_path, @verify_mode = app, socket_path, verify_mode
14
14
  begin
15
- puts 'secful: initialize'
16
15
  @secful_key = secful_key
17
- puts 'secful: secful_key'
18
16
  @agent_identifier = SecureRandom.hex
19
- puts 'secful: agent_identifier'
20
17
  @machine_ip = Socket.ip_address_list.detect(&:ipv4_private?).try(:ip_address)
21
- puts 'secful: machine_ip'
22
- @queue = SizedQueue.new(MAX_QUEUE_SIZE)
23
- puts 'secful: queue init ' + @queue.__id__.to_s
18
+ #@queue = SizedQueue.new(MAX_QUEUE_SIZE)
24
19
  @threads_to_sockets = {}
25
- puts 'secful: threads_to_sockets'
26
- Thread.new { activate_workers() }
27
- puts 'secful: activate_workers()'
28
- rescue Exception => e
29
- puts 'secful: init-exception: ' + e.message
30
- puts 'secful: init-trace: ' + e.backtrace.inspect
20
+ #Thread.new { activate_workers() }
21
+ rescue nil
31
22
  end
32
23
  end
33
24
 
34
25
  def call(env)
35
26
  begin
36
- puts 'secful: call'
27
+ if !defined? @queue
28
+ @queue = SizedQueue.new(MAX_QUEUE_SIZE)
29
+ activate_workers()
30
+ end
37
31
  dup._call(env)
38
- rescue Exception => e
39
- puts 'secful: call-exception: ' + e.message
40
- puts 'secful: call-trace: ' + e.backtrace.inspect
32
+ rescue nil
41
33
  @app.call(env)
42
34
  end
43
35
  end
@@ -45,59 +37,42 @@ module Rack
45
37
  protected
46
38
 
47
39
  def _call(env)
48
- puts 'secful: _call'
49
40
  status, headers, body = @app.call(env)
50
- puts 'secful: app.call'
51
- puts 'secful: queue.len = ' + @queue.length.to_s + ' id: ' + @queue.__id__.to_s
52
- if @queue.length < MAX_QUEUE_SIZE
53
- puts 'secful: about to put in queue'
41
+ if @queue.length < MAX_QUEUE_SIZE - 5
54
42
  @queue << env
55
- puts 'secful: put in queue'
56
43
  end
57
44
  return [status, headers, body]
58
45
  end
59
46
 
60
47
  def activate_workers
61
- puts 'secful: activate_workers'
62
48
  NUM_OF_THREADS.times do
63
- puts 'secful: new thread'
64
49
  thr = Thread.new {worker()}
65
- puts 'secful: thread started ' + thr.__id__.to_s
66
50
  end
67
51
  end
68
52
 
69
53
  def worker
70
54
  loop do
71
55
  begin
72
- puts 'secful: worker start: ' + Thread.current.__id__.to_s + 'queue: ' + @queue.__id__.to_s
73
56
  env = @queue.pop
74
- puts 'secful: worker poped'
75
57
  if env
76
- puts 'secful: env'
77
58
  connect_to_ws(Thread.current)
78
59
  handle_request(env)
79
- puts 'scful: worker done'
80
60
  end
81
- rescue Exception => e
82
- puts 'secful: worker-exception: ' + e.message
83
- puts 'secful: worker-trace: ' + e.backtrace.inspect
61
+ rescue nil
84
62
  end
85
63
  end
86
64
  end
87
65
 
88
66
  def connect_to_ws(thr)
89
67
  begin
90
- puts 'secful: connect_to_ws'
91
68
  ws = @threads_to_sockets[thr]
92
69
  if !ws
93
- puts 'secful: creating ws'
94
70
  headers = { 'Agent-Type' => 'Ruby',
95
71
  'Agent-Version' => '1.0',
96
72
  'Agent-Identifier' => @agent_identifier,
97
73
  'Authorization' => 'Bearer ' + @secful_key }
98
74
  ws = WebSocket::Client::Simple.connect @socket_path, verify_mode: @verify_mode, headers: headers
99
75
  sleep(3)
100
- puts 'secful: connected to ws'
101
76
  end
102
77
  if !ws.open?
103
78
  sleep(60)
@@ -114,16 +89,11 @@ module Rack
114
89
  def handle_request(env)
115
90
  request_hash = {}
116
91
  if env['rack.url_scheme'] == 'http'
117
- puts 'secful: writing env'
118
92
  write_env(request_hash, env)
119
93
  ws = @threads_to_sockets[Thread.current]
120
94
  begin
121
- puts 'secful: sending'
122
95
  ws.send request_hash.to_json
123
- puts 'secful: sent'
124
96
  rescue Exception => e
125
- puts 'secful: handle_request-exception: ' + e.message
126
- puts 'secful: handle_request-trace: ' + e.backtrace.inspect
127
97
  if ws
128
98
  ws.close()
129
99
  end rescue nil
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "socket_duplex"
6
- spec.version = '1.1.7'
6
+ spec.version = '1.1.8'
7
7
  spec.authors = ["Secful"]
8
8
  spec.description = %q{Rack middleware that duplexes HTTP traffic}
9
9
  spec.summary = spec.description
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socket_duplex
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Secful
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-25 00:00:00.000000000 Z
11
+ date: 2016-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler