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 +4 -4
- data/Gemfile.lock +2 -1
- data/lib/r_socks/connection_handler.rb +29 -21
- data/lib/r_socks/version.rb +1 -1
- data/r_socks.gemspec +3 -0
- metadata +25 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f41d6fb140bb7ae00bcf456e514764dcfbc3fe6d35ea829697b223552a7ec400
|
4
|
+
data.tar.gz: 240c58c0258d93a55dc5ec625ae7a56c0cc823a956c991ce757d4c7e6a9a1ee6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cebd665f25d59e3cd88d277e55916b7ffe4cd999a89f52c406d0588486a67ba999289dab5b7f441b8ada63426af4e19714e9c09cbb789b96092e5ab617567073
|
7
|
+
data.tar.gz: 4c80ef76836e1b3a776c465116d152dd79ee66d4eed65d630170fbfdd4d407e13c294f81fb0689a3648c5790a87c08dc3a5c9afcdabd1f73e3c5740bf82ffe49
|
data/Gemfile.lock
CHANGED
@@ -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
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
44
|
-
|
45
|
-
|
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
|
-
|
48
|
-
|
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
|
-
|
55
|
-
|
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
|
data/lib/r_socks/version.rb
CHANGED
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.
|
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-
|
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
|