r_socks 0.1.4 → 0.1.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: 4437c0dc6d60a5e4b7d70c4dea5074bddcd0eefe4e677a7530e30405c2752da3
4
- data.tar.gz: bac15e8ca3fa6b945720c3699d8c0b1325323556f4ac54bcd64bd5438d68159c
3
+ metadata.gz: 61198ecf92ea464b8bfc7c185ff7a723edc2f2d12baa27208edb3237649968c3
4
+ data.tar.gz: e809c8bc99cf8503f2e482893a3782b654bd3b0a3a732f6a8f4bcad0467f5140
5
5
  SHA512:
6
- metadata.gz: 1651e0dcdf4ff5af0ede3643cfb9990c2c654e2de79e9989c3c61a96ba2b84bbb84d16ae548eb7e071c62aef484c3cceadae4172308597f5081b4d8f1b9b686d
7
- data.tar.gz: 483e9ee7aeec558334a27553cfbed7a5623e0e240c96b81a4ce96c2c597db6810a83e327124baaf178da0f3d1e13fe4658c385ae04d49797799206f3575933a8
6
+ metadata.gz: ebacf2bccba41f8ce5ed39be17b536706eb323edcdbe0790a11b5e7d3595623c8b2d3c6e97ce351fae7f7385b6e09b9ee910b52aa7c00c6be9742550bc47db37
7
+ data.tar.gz: 6e706ae3f7bb3cdcf518f92ce668660985865d602115847ae960d5df06684b3185ca8ecb336a6bceaf830db254fecb9d3591c63f0772bad406eefd3ea0376fc7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- r_socks (0.1.3)
4
+ r_socks (0.1.5)
5
5
  eventmachine (~> 1.2, >= 1.2.7)
6
6
 
7
7
  GEM
@@ -55,14 +55,16 @@ module RSocks
55
55
 
56
56
  if @state_machine.connect?
57
57
  connect_request(data)
58
- @target = EventMachine.attach(@current_socket, RSocks::TargetConnectionHandler)
59
- @target.source_io = self
60
58
  return
61
59
  end
62
60
 
63
61
  return send_data(not_accept) unless @state_machine.start?
64
- @target.send_data(data)
65
62
 
63
+ if @target.nil?
64
+ @target = EventMachine.connect(@addr, @port, RSocks::TargetConnectionHandler, self)
65
+ end
66
+
67
+ @target.send_data(data)
66
68
  rescue => error
67
69
  puts "Error at #{@ip}:#{@port}, message: #{data}, error: #{error.message}"
68
70
  puts error.backtrace
@@ -70,9 +72,7 @@ module RSocks
70
72
  end
71
73
 
72
74
  def unbind
73
- if @current_socket && !@current_socket.closed?
74
- @current_socket.close
75
- end
75
+ @target.close_connection
76
76
  end
77
77
 
78
78
  private
@@ -118,8 +118,7 @@ module RSocks
118
118
  return not_accept if version != RSocks::VERSION
119
119
 
120
120
  begin
121
- addr, port, type = check_sock_cmd(cmd, data[2..-1])
122
- @current_socket = TCPSocket.new(addr, port)
121
+ @addr, @port, @type = check_sock_cmd(cmd, data[2..-1])
123
122
  rescue
124
123
  send_data([RSocks::VERSION,RSocks::CONNECT_FAIL].pack('CC'))
125
124
  return close_connection
@@ -128,7 +127,7 @@ module RSocks
128
127
  @state_machine.start!
129
128
 
130
129
  send_data([RSocks::VERSION, RSocks::CONNECT_SUCCESS].
131
- pack('CC') + pack_address_and_port_info(type))
130
+ pack('CC') + pack_address_and_port_info(@type))
132
131
  end
133
132
 
134
133
  def check_sock_cmd(cmd, data)
@@ -3,16 +3,16 @@ require 'eventmachine'
3
3
  module RSocks
4
4
  class TargetConnectionHandler < EM::Connection
5
5
 
6
- def source_io=(io)
7
- @source_io = io
6
+ def initialize(client)
7
+ @client = client
8
8
  end
9
9
 
10
10
  def receive_data(data)
11
- @source_io.send_data(data)
11
+ @client.send_data(data)
12
12
  end
13
13
 
14
14
  def unbind
15
- @source_io.close_connection
15
+ @client.close_connection_after_writing
16
16
  end
17
17
  end
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module RSocks
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
data/lib/r_socks.rb CHANGED
@@ -1 +1,8 @@
1
- require 'r_socks/tcp_server'
1
+ require 'r_socks/tcp_server'
2
+ # example
3
+ #
4
+ # server = RSocks::TcpServer.new('127.0.0.1', 8081)
5
+ #
6
+ # server.config.auth_method = :password
7
+ #
8
+ # server.run!
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r_socks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick An