Module: EventMachine::Socksify
- Defined in:
- lib/em-socksify/errors.rb,
lib/em-socksify/socks5.rb,
lib/em-socksify/version.rb,
lib/em-socksify/socksify.rb
Defined Under Namespace
Modules: SOCKS5
Classes: SOCKSError
Constant Summary
collapse
- VERSION =
"0.3.3"
Instance Method Summary
collapse
Instance Method Details
#socks_hook ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/em-socksify/socksify.rb', line 20
def socks_hook
if @socks_version == 5
extend SOCKS5
else
raise ArgumentError, 'SOCKS version unsupported'
end
class << self
alias receive_data socks_receive_data
end
end
|
#socks_receive_data(data) ⇒ Object
40
41
42
43
|
# File 'lib/em-socksify/socksify.rb', line 40
def socks_receive_data(data)
@socks_data << data
socks_parse_response
end
|
#socks_unhook(ip = nil) ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/em-socksify/socksify.rb', line 32
def socks_unhook(ip = nil)
class << self
remove_method :receive_data
end
@socks_deferrable.succeed(ip)
end
|
#socksify(host, port, username = nil, password = nil, version = 5, &blk) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/em-socksify/socksify.rb', line 4
def socksify(host, port, username = nil, password = nil, version = 5, &blk)
@socks_target_host = host
@socks_target_port = port
@socks_username = username
@socks_password = password
@socks_version = version
@socks_data = ''
socks_hook
socks_send_handshake
@socks_deferrable = DefaultDeferrable.new
@socks_deferrable.callback(&blk) if blk
@socks_deferrable
end
|