r_socks 0.1.1 → 0.1.2

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: eedc173179a56ad67727bdecfe8624e116d460d51929ab39087a37fc3261813e
4
- data.tar.gz: efc729c5cf92ede55d578d8d6d37228175e3db6940a22b6c79c3cb63873b7073
3
+ metadata.gz: f41d6fb140bb7ae00bcf456e514764dcfbc3fe6d35ea829697b223552a7ec400
4
+ data.tar.gz: 240c58c0258d93a55dc5ec625ae7a56c0cc823a956c991ce757d4c7e6a9a1ee6
5
5
  SHA512:
6
- metadata.gz: 56496f12b33b1ba403015b26e1e9d5c6867031093fe4bfcccd5f42666e83a216d22f8b70cdf80c6891efe53fda1d0625f075e58b2aafb0d4eb2a44219a009b1c
7
- data.tar.gz: 26565fd6aa0566cb97ca3cea88928683816d9e2232ee870a105e1cf6b6781cb3e3ff5a9222d566a11562a3984adde3535a52eadbef4b18dc02f6932e5201b6ab
6
+ metadata.gz: cebd665f25d59e3cd88d277e55916b7ffe4cd999a89f52c406d0588486a67ba999289dab5b7f441b8ada63426af4e19714e9c09cbb789b96092e5ab617567073
7
+ data.tar.gz: 4c80ef76836e1b3a776c465116d152dd79ee66d4eed65d630170fbfdd4d407e13c294f81fb0689a3648c5790a87c08dc3a5c9afcdabd1f73e3c5740bf82ffe49
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- r_socks (0.1.0)
4
+ r_socks (0.1.2)
5
+ eventmachine (~> 1.2, >= 1.2.7)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
@@ -23,40 +23,48 @@ module RSocks
23
23
 
24
24
  def post_init
25
25
  @port, @ip = Socket.unpack_sockaddr_in(get_peername)
26
- puts "new #{@ip}:#{@port} connected."
27
26
  end
28
27
  # sample \x05\x01\x00\x03\ngoogle.com\x00P
29
28
 
30
29
  def receive_data(data)
31
- if @state_machine.handshake?
32
- return init_handshake(data)
33
- end
34
30
 
35
- if @state_machine.auth?
36
- passed = @authenticator.auth!(data)
37
- if passed
38
- send_data(RSocks::SUCCESS_RESPONSE)
39
- @state_machine.connect!
31
+ return send_data(not_accept) if data.nil? || data == ''
32
+
33
+ begin
34
+
35
+ if @state_machine.handshake?
36
+ return init_handshake(data)
37
+ end
38
+
39
+ if @state_machine.auth?
40
+ passed = @authenticator.auth!(data)
41
+ if passed
42
+ send_data(RSocks::SUCCESS_RESPONSE)
43
+ @state_machine.connect!
44
+ return
45
+ end
46
+
47
+ send_data(RSocks::FAILED_RESPONSE)
40
48
  return
41
49
  end
42
50
 
43
- send_data(RSocks::FAILED_RESPONSE)
44
- return
45
- end
51
+ if @state_machine.connect?
52
+ connect_request(data)
53
+ @target = EventMachine.attach(@current_socket, RSocks::TargetConnectionHandler)
54
+ @target.source_io = self
55
+ return
56
+ end
46
57
 
47
- if @state_machine.connect?
48
- connect_request(data)
49
- @target = EventMachine.attach(@current_socket, RSocks::TargetConnectionHandler)
50
- @target.source_io = self
51
- return
52
- end
58
+ return send_data(not_accept) unless @state_machine.start?
59
+ @target.send_data(data)
53
60
 
54
- return send_data(not_accept) unless @state_machine.start?
55
- @target.send_data(data)
61
+ rescue => error
62
+ put "Error at #{@ip}:#{@port}, message: #{data}, error: #{error.message}"
63
+ puts error.backtrace
64
+ end
56
65
  end
57
66
 
58
67
  def unbind
59
- puts "#{@ip}:#{@port} had disconnected."
60
68
  if @current_socket && !@current_socket.closed?
61
69
  @current_socket.close
62
70
  end
@@ -1,3 +1,3 @@
1
1
  module RSocks
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/r_socks.gemspec CHANGED
@@ -5,6 +5,7 @@ Gem::Specification.new do |spec|
5
5
  spec.version = RSocks::VERSION
6
6
  spec.authors = ["Nick An"]
7
7
  spec.email = ["anning0322@gmail.com"]
8
+ spec.licenses = ['Apache-2.0']
8
9
 
9
10
  spec.summary = %q{socks5 proxy server}
10
11
  spec.description = %q{ruby proxy socks5 shadowsocks}
@@ -24,4 +25,6 @@ Gem::Specification.new do |spec|
24
25
  spec.bindir = "exe"
25
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
27
  spec.require_paths = ["lib"]
28
+
29
+ spec.add_runtime_dependency 'eventmachine', '~> 1.2', '>= 1.2.7'
27
30
  end
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_socks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
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-19 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2020-03-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: eventmachine
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.2.7
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.2'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.2.7
13
33
  description: ruby proxy socks5 shadowsocks
14
34
  email:
15
35
  - anning0322@gmail.com
@@ -38,7 +58,8 @@ files:
38
58
  - lib/r_socks/version.rb
39
59
  - r_socks.gemspec
40
60
  homepage: https://github.com/nickoan/r_socks
41
- licenses: []
61
+ licenses:
62
+ - Apache-2.0
42
63
  metadata:
43
64
  homepage_uri: https://github.com/nickoan/r_socks
44
65
  source_code_uri: https://github.com/nickoan/r_socks