r_socks 0.2.4 → 0.2.5

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: 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