r_socks 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f97ed3448123f5f9fc3aeaae401d2b14f620417935bd9bc8eb2af2615307f259
4
- data.tar.gz: 4f2dc91c7b5d0cc54d30ca3a9aefe118a4d9a052757f89dfa5ec4f227cb52aad
3
+ metadata.gz: f8444f9171cf9aab6f9ab0cbd2cfacfd3ae7b1690a309899ff1572ac720c92a9
4
+ data.tar.gz: a470fc4f7463e53a978cf0ade6d1e46ba33b8287d9574d9a4a163d2814f9b782
5
5
  SHA512:
6
- metadata.gz: 320f94aaf0e0e713be26ae797abe3e10a60d86d1f8a24e7b0b4abab105b23f5e98534f50ae2c65d32232ce24a22923d513ac406ab9d4209055b9230a07d2c0b4
7
- data.tar.gz: d6480f4e1622168c5cbd0d01013808822e58aae57d29b20f1a975e206a578d1d3bb0a1055935180239b23d2bc1d93c1b0fc458c38de910ad22e7f658bafde3d6
6
+ metadata.gz: 90c88f6631935f1eaf1f416f2118b141288d88cded451628cb8e578ef1a9d91c12d7222a4b205c4cfed07d7bf3a45efed2a9ad90c0fd1449b60874ebaeb38419
7
+ data.tar.gz: 462d0ce7be79ca2e5d3484e35e246c7478ddd47ce733f3c5e79be1b4a4dcec040a5015898795ee7455dd21427aa4d8fd1ff0d4f2f5c10fa17ee59867d6e316c8
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- r_socks (0.2.4)
4
+ r_socks (0.2.5)
5
5
  eventmachine (~> 1.2, >= 1.2.7)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -35,12 +35,20 @@ export RSOCKS_PASSWORD=some_password
35
35
  run server
36
36
 
37
37
  ```ruby
38
- require 'r_socks'
38
+ server = RSocks::TcpServer.new
39
+ server.config.auth_method = :password
40
+ server.config.proxy_buffer_size = 10 * 1024 * 1024
41
+ server.config.proxy_type = :http
42
+
43
+ # if true then you need attach cert and private key
44
+ server.config.enable_ssl = false
45
+ # server.config.ssl_private_key = './server_key.txt'
46
+ # server.config.ssl_cert = './server_cert.txt'
47
+
48
+ # start multi process
49
+ server.config.instances = 2
39
50
 
40
- server = RSocks::TcpServer.new('127.0.0.1', 8081)
41
51
 
42
- server.config.auth_method = :password
43
- server.config.proxy_type = :http # default proxy_type = socks5
44
52
 
45
53
  server.run!
46
54
  ```
@@ -43,21 +43,37 @@ module RSocks
43
43
  def spawn_process(number)
44
44
 
45
45
  server = TCPServer.new(@host, @port)
46
+ pids = []
46
47
 
47
48
  number.times do |i|
48
- Process.fork do
49
+ pids << Process.fork do
49
50
  puts "start r_socks instance @#{i}"
51
+ Signal.trap("TERM") { exit! }
50
52
  begin
51
53
  attach_and_start_server(server)
52
54
  rescue Interrupt
53
55
  puts "r_socks TPC server instance @#{i} closed now...."
54
56
  rescue => e
55
57
  puts "r_socks instance @#{i} exit with exception: \r\n#{e.message}"
58
+ exit!
56
59
  end
57
60
  end
58
61
  end
59
62
 
63
+ # if main process run in backgourd and has been killed
64
+ # then all sub-process should term
65
+ at_exit do
66
+ term_all_sub_process(pids)
67
+ end
68
+
60
69
  Process.waitall
61
70
  end
71
+
72
+ def term_all_sub_process(pids)
73
+ pids.each do |id|
74
+ next unless id
75
+ Process.kill("TERM", id)
76
+ end
77
+ end
62
78
  end
63
79
  end
@@ -1,3 +1,3 @@
1
1
  module RSocks
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
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.4
4
+ version: 0.2.5
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-30 00:00:00.000000000 Z
11
+ date: 2020-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine