r_socks 0.2.3 → 0.2.4

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
  SHA256:
3
- metadata.gz: b3ad0f0a68655c4ec5dae8134856b7eac8174450493b449adcda0475f3200f90
4
- data.tar.gz: b95383e3b0708ae8be3550758b3aa40ffb8d3e8de74d638f46dead51831454f3
3
+ metadata.gz: f97ed3448123f5f9fc3aeaae401d2b14f620417935bd9bc8eb2af2615307f259
4
+ data.tar.gz: 4f2dc91c7b5d0cc54d30ca3a9aefe118a4d9a052757f89dfa5ec4f227cb52aad
5
5
  SHA512:
6
- metadata.gz: a23df9958fbb1b595156bead6726462905dfe57311e226eebb08bb42777d97f435611cbb4d34c3a7f3d31538b8ae0cd497a26193d446b97c7a5ddd3bb7cfe791
7
- data.tar.gz: cdf52b00fac2ab046202f5a572e3dc74c1893a89b18b53262ce24a7d383ec59627bfd59924ba8228f35c60812a1263e41c3c0cbcea5aac85d349989e2c3247ce
6
+ metadata.gz: 320f94aaf0e0e713be26ae797abe3e10a60d86d1f8a24e7b0b4abab105b23f5e98534f50ae2c65d32232ce24a22923d513ac406ab9d4209055b9230a07d2c0b4
7
+ data.tar.gz: d6480f4e1622168c5cbd0d01013808822e58aae57d29b20f1a975e206a578d1d3bb0a1055935180239b23d2bc1d93c1b0fc458c38de910ad22e7f658bafde3d6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- r_socks (0.2.2)
4
+ r_socks (0.2.4)
5
5
  eventmachine (~> 1.2, >= 1.2.7)
6
6
 
7
7
  GEM
@@ -78,5 +78,13 @@ module RSocks
78
78
  def enable_ssl?
79
79
  !!@store[:enable_ssl]
80
80
  end
81
+
82
+ def instances=(number)
83
+ @store[:instance] = number
84
+ end
85
+
86
+ def instances
87
+ @store[:instance] || 1
88
+ end
81
89
  end
82
90
  end
@@ -10,8 +10,6 @@ module RSocks
10
10
  end
11
11
 
12
12
  def connection_completed
13
- port, ip = Socket.unpack_sockaddr_in(get_peername)
14
- puts "success connected to #{ip}:#{port}"
15
13
  if @config.proxy_type == :http
16
14
  @client.send_data(RSocks::HttpProxyResponseCodes::SUCCESS)
17
15
  end
@@ -17,17 +17,47 @@ module RSocks
17
17
  begin
18
18
  start_tcp_server
19
19
  rescue Interrupt
20
- puts ""
21
- puts "RSocks TPC server closed now...."
20
+ puts "\nr_socks TPC main server closed now...."
22
21
  end
23
22
  end
24
23
 
25
24
  private
26
25
 
27
26
  def start_tcp_server
27
+
28
+ if @config.instances > 1
29
+ spawn_process(@config.instances.to_i)
30
+ else
31
+ EventMachine.run do
32
+ EventMachine.start_server @host, @port, RSocks::ConnectionHandler, @config
33
+ end
34
+ end
35
+ end
36
+
37
+ def attach_and_start_server(server)
28
38
  EventMachine.run do
29
- EventMachine.start_server @host, @port, RSocks::ConnectionHandler, @config
39
+ EventMachine.attach_server(server, RSocks::ConnectionHandler, @config)
40
+ end
41
+ end
42
+
43
+ def spawn_process(number)
44
+
45
+ server = TCPServer.new(@host, @port)
46
+
47
+ number.times do |i|
48
+ Process.fork do
49
+ puts "start r_socks instance @#{i}"
50
+ begin
51
+ attach_and_start_server(server)
52
+ rescue Interrupt
53
+ puts "r_socks TPC server instance @#{i} closed now...."
54
+ rescue => e
55
+ puts "r_socks instance @#{i} exit with exception: \r\n#{e.message}"
56
+ end
57
+ end
30
58
  end
59
+
60
+ Process.waitall
31
61
  end
32
62
  end
33
63
  end
@@ -1,3 +1,3 @@
1
1
  module RSocks
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_socks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick An
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-28 00:00:00.000000000 Z
11
+ date: 2020-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine