r_socks 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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