hrr_rb_ssh 0.4.0.pre1 → 0.4.0.pre2
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/README.md +16 -8
- data/demo/client.rb +1 -3
- data/demo/echo_server.rb +1 -3
- data/demo/more_flexible_auth.rb +1 -3
- data/demo/multi_step_auth.rb +1 -3
- data/demo/server.rb +1 -3
- data/demo/subsystem_echo_server.rb +1 -3
- data/hrr_rb_ssh.gemspec +1 -1
- data/lib/hrr_rb_ssh/algorithm/publickey/ecdsa_sha2.rb +12 -9
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_dss.rb +10 -7
- data/lib/hrr_rb_ssh/algorithm/publickey/ssh_rsa.rb +9 -6
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/context.rb +9 -8
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_request.rb +6 -5
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_response.rb +5 -2
- data/lib/hrr_rb_ssh/authentication/method/keyboard_interactive.rb +12 -10
- data/lib/hrr_rb_ssh/authentication/method/none/context.rb +7 -6
- data/lib/hrr_rb_ssh/authentication/method/none.rb +10 -8
- data/lib/hrr_rb_ssh/authentication/method/password/context.rb +7 -6
- data/lib/hrr_rb_ssh/authentication/method/password.rb +10 -8
- data/lib/hrr_rb_ssh/authentication/method/publickey/algorithm/functionable.rb +13 -11
- data/lib/hrr_rb_ssh/authentication/method/publickey/context.rb +5 -2
- data/lib/hrr_rb_ssh/authentication/method/publickey.rb +16 -14
- data/lib/hrr_rb_ssh/authentication.rb +28 -27
- data/lib/hrr_rb_ssh/client.rb +58 -56
- data/lib/hrr_rb_ssh/codable.rb +20 -10
- data/lib/hrr_rb_ssh/connection/channel/channel_type/direct_tcpip.rb +20 -18
- data/lib/hrr_rb_ssh/connection/channel/channel_type/forwarded_tcpip.rb +20 -18
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/proc_chain/chain_context.rb +0 -3
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/proc_chain.rb +0 -2
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/env/context.rb +5 -4
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/env.rb +2 -5
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/exec/context.rb +5 -4
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/exec.rb +2 -5
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/pty_req/context.rb +5 -4
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/pty_req.rb +2 -5
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/shell/context.rb +5 -4
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/shell.rb +2 -5
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/subsystem/context.rb +5 -4
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/subsystem.rb +2 -5
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/window_change/context.rb +5 -4
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/window_change.rb +2 -5
- data/lib/hrr_rb_ssh/connection/channel/channel_type/session.rb +14 -12
- data/lib/hrr_rb_ssh/connection/channel.rb +73 -71
- data/lib/hrr_rb_ssh/connection/global_request_handler.rb +14 -12
- data/lib/hrr_rb_ssh/connection/request_handler/reference_env_request_handler.rb +0 -2
- data/lib/hrr_rb_ssh/connection/request_handler/reference_exec_request_handler.rb +4 -6
- data/lib/hrr_rb_ssh/connection/request_handler/reference_pty_req_request_handler.rb +10 -12
- data/lib/hrr_rb_ssh/connection/request_handler/reference_shell_request_handler.rb +4 -6
- data/lib/hrr_rb_ssh/connection/request_handler/reference_window_change_request_handler.rb +0 -2
- data/lib/hrr_rb_ssh/connection/request_handler.rb +1 -3
- data/lib/hrr_rb_ssh/connection.rb +53 -53
- data/lib/hrr_rb_ssh/loggable.rb +42 -0
- data/lib/hrr_rb_ssh/server.rb +11 -9
- data/lib/hrr_rb_ssh/transport/compression_algorithm/functionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport/compression_algorithm/unfunctionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/functionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport/encryption_algorithm/unfunctionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman.rb +9 -8
- data/lib/hrr_rb_ssh/transport/kex_algorithm/diffie_hellman_group_exchange.rb +13 -12
- data/lib/hrr_rb_ssh/transport/kex_algorithm/elliptic_curve_diffie_hellman.rb +9 -8
- data/lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport/mac_algorithm/unfunctionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport/receiver.rb +8 -7
- data/lib/hrr_rb_ssh/transport/sender.rb +5 -3
- data/lib/hrr_rb_ssh/transport/sequence_number.rb +0 -4
- data/lib/hrr_rb_ssh/transport/server_host_key_algorithm/functionable.rb +5 -3
- data/lib/hrr_rb_ssh/transport.rb +41 -40
- data/lib/hrr_rb_ssh/version.rb +1 -1
- data/lib/hrr_rb_ssh.rb +0 -1
- metadata +6 -6
- data/lib/hrr_rb_ssh/logger.rb +0 -56
data/lib/hrr_rb_ssh/codable.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
module Codable
|
8
|
-
|
9
|
-
|
8
|
+
class LoggableClass
|
9
|
+
include Loggable
|
10
|
+
|
11
|
+
def initialize logger
|
12
|
+
self.logger = logger
|
13
|
+
end
|
10
14
|
end
|
11
15
|
|
12
16
|
def common_definition
|
@@ -22,15 +26,18 @@ module HrrRbSsh
|
|
22
26
|
}
|
23
27
|
end
|
24
28
|
|
25
|
-
def encode message, complementary_message={}
|
26
|
-
|
29
|
+
def encode message, complementary_message={}, logger: nil
|
30
|
+
loggable_instalce = LoggableClass.new(logger)
|
31
|
+
loggable_instalce.log_key = self.to_s
|
32
|
+
|
33
|
+
loggable_instalce.log_debug { 'encoding message: ' + message.inspect }
|
27
34
|
definition = common_definition + conditional_definition(message.merge complementary_message)
|
28
35
|
definition.map{ |data_type, field_name|
|
29
36
|
begin
|
30
37
|
field_value = if message[field_name].instance_of? ::Proc then message[field_name].call else message[field_name] end
|
31
|
-
data_type.encode
|
38
|
+
data_type.encode field_value
|
32
39
|
rescue => e
|
33
|
-
|
40
|
+
loggable_instalce.log_debug { "'field_name', 'field_value': #{field_name.inspect}, #{field_value.inspect}" }
|
34
41
|
raise e
|
35
42
|
end
|
36
43
|
}.join
|
@@ -49,20 +56,23 @@ module HrrRbSsh
|
|
49
56
|
decoded_message = definition.map{ |data_type, field_name|
|
50
57
|
[
|
51
58
|
field_name,
|
52
|
-
data_type.decode(
|
59
|
+
data_type.decode(payload_io)
|
53
60
|
]
|
54
61
|
}
|
55
62
|
decoded_message + decode_recursively(payload_io, decoded_message)
|
56
63
|
end
|
57
64
|
end
|
58
65
|
|
59
|
-
def decode payload, complementary_message={}
|
66
|
+
def decode payload, complementary_message={}, logger: nil
|
67
|
+
loggable_instalce = LoggableClass.new(logger)
|
68
|
+
loggable_instalce.log_key = self.to_s
|
69
|
+
|
60
70
|
payload_io = StringIO.new payload
|
61
71
|
decoded_message = decode_recursively(payload_io).inject(Hash.new){ |h, (k, v)| h.update({k => v}) }
|
62
72
|
if complementary_message.any?
|
63
73
|
decoded_message.merge! decode_recursively(payload_io, complementary_message.to_a).inject(Hash.new){ |h, (k, v)| h.update({k => v}) }
|
64
74
|
end
|
65
|
-
|
75
|
+
loggable_instalce.log_debug { 'decoded message: ' + decoded_message.inspect }
|
66
76
|
decoded_message
|
67
77
|
end
|
68
78
|
end
|
@@ -1,17 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
8
8
|
class Channel
|
9
9
|
class ChannelType
|
10
10
|
class DirectTcpip < ChannelType
|
11
|
+
include Loggable
|
12
|
+
|
11
13
|
NAME = 'direct-tcpip'
|
12
14
|
|
13
|
-
def initialize connection, channel, message, socket=nil
|
14
|
-
|
15
|
+
def initialize connection, channel, message, socket=nil, logger: nil
|
16
|
+
self.logger = logger
|
15
17
|
@connection = connection
|
16
18
|
@channel = channel
|
17
19
|
@host_to_connect = message[:'host to connect']
|
@@ -29,16 +31,16 @@ module HrrRbSsh
|
|
29
31
|
def close
|
30
32
|
begin
|
31
33
|
if @sender_thread_finished && @receiver_thread_finished
|
32
|
-
|
34
|
+
log_info { "closing direct-tcpip" }
|
33
35
|
@socket.close
|
34
|
-
|
36
|
+
log_info { "closing channel IOs" }
|
35
37
|
@channel.io.each{ |io| io.close rescue nil }
|
36
|
-
|
38
|
+
log_info { "channel IOs closed" }
|
37
39
|
@channel.close from=:channel_type_instance
|
38
|
-
|
40
|
+
log_info { "direct-tcpip closed" }
|
39
41
|
end
|
40
42
|
rescue => e
|
41
|
-
|
43
|
+
log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
@@ -49,24 +51,24 @@ module HrrRbSsh
|
|
49
51
|
begin
|
50
52
|
@channel.io[1].write s.readpartial(10240)
|
51
53
|
rescue EOFError
|
52
|
-
|
54
|
+
log_info { "socket is EOF" }
|
53
55
|
@channel.io[1].close rescue nil
|
54
56
|
break
|
55
57
|
rescue IOError
|
56
|
-
|
58
|
+
log_info { "socket is closed" }
|
57
59
|
@channel.io[1].close rescue nil
|
58
60
|
break
|
59
61
|
rescue => e
|
60
|
-
|
62
|
+
log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
|
61
63
|
@channel.io[1].close rescue nil
|
62
64
|
break
|
63
65
|
end
|
64
66
|
end
|
65
|
-
|
67
|
+
log_info { "finishing sender thread" }
|
66
68
|
@sender_thread_finished = true
|
67
69
|
close
|
68
70
|
ensure
|
69
|
-
|
71
|
+
log_info { "sender thread finished" }
|
70
72
|
end
|
71
73
|
}
|
72
74
|
end
|
@@ -78,23 +80,23 @@ module HrrRbSsh
|
|
78
80
|
begin
|
79
81
|
s.write @channel.io[0].readpartial(10240)
|
80
82
|
rescue EOFError
|
81
|
-
|
83
|
+
log_info { "io is EOF" }
|
82
84
|
s.close_write
|
83
85
|
break
|
84
86
|
rescue IOError
|
85
|
-
|
87
|
+
log_info { "socket is closed" }
|
86
88
|
break
|
87
89
|
rescue => e
|
88
|
-
|
90
|
+
log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
|
89
91
|
s.close_write
|
90
92
|
break
|
91
93
|
end
|
92
94
|
end
|
93
|
-
|
95
|
+
log_info { "finishing receiver thread" }
|
94
96
|
@receiver_thread_finished = true
|
95
97
|
close
|
96
98
|
ensure
|
97
|
-
|
99
|
+
log_info { "receiver thread finished" }
|
98
100
|
end
|
99
101
|
}
|
100
102
|
end
|
@@ -1,17 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
8
8
|
class Channel
|
9
9
|
class ChannelType
|
10
10
|
class ForwardedTcpip < ChannelType
|
11
|
+
include Loggable
|
12
|
+
|
11
13
|
NAME = 'forwarded-tcpip'
|
12
14
|
|
13
|
-
def initialize connection, channel, message, socket
|
14
|
-
|
15
|
+
def initialize connection, channel, message, socket, logger: nil
|
16
|
+
self.logger = logger
|
15
17
|
@connection = connection
|
16
18
|
@channel = channel
|
17
19
|
@socket = socket
|
@@ -25,16 +27,16 @@ module HrrRbSsh
|
|
25
27
|
def close
|
26
28
|
begin
|
27
29
|
if @sender_thread_finished && @receiver_thread_finished
|
28
|
-
|
30
|
+
log_info { "closing forwarded-tcpip" }
|
29
31
|
@socket.close
|
30
|
-
|
32
|
+
log_info { "closing channel IOs" }
|
31
33
|
@channel.io.each{ |io| io.close rescue nil }
|
32
|
-
|
34
|
+
log_info { "channel IOs closed" }
|
33
35
|
@channel.close from=:channel_type_instance
|
34
|
-
|
36
|
+
log_info { "forwarded-tcpip closed" }
|
35
37
|
end
|
36
38
|
rescue => e
|
37
|
-
|
39
|
+
log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
|
38
40
|
end
|
39
41
|
end
|
40
42
|
|
@@ -45,24 +47,24 @@ module HrrRbSsh
|
|
45
47
|
begin
|
46
48
|
@channel.io[1].write s.readpartial(10240)
|
47
49
|
rescue EOFError
|
48
|
-
|
50
|
+
log_info { "socket is EOF" }
|
49
51
|
@channel.io[1].close rescue nil
|
50
52
|
break
|
51
53
|
rescue IOError
|
52
|
-
|
54
|
+
log_info { "socket is closed" }
|
53
55
|
@channel.io[1].close rescue nil
|
54
56
|
break
|
55
57
|
rescue => e
|
56
|
-
|
58
|
+
log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
|
57
59
|
@channel.io[1].close rescue nil
|
58
60
|
break
|
59
61
|
end
|
60
62
|
end
|
61
|
-
|
63
|
+
log_info { "finishing sender thread" }
|
62
64
|
@sender_thread_finished = true
|
63
65
|
close
|
64
66
|
ensure
|
65
|
-
|
67
|
+
log_info { "sender thread finished" }
|
66
68
|
end
|
67
69
|
}
|
68
70
|
end
|
@@ -74,23 +76,23 @@ module HrrRbSsh
|
|
74
76
|
begin
|
75
77
|
s.write @channel.io[0].readpartial(10240)
|
76
78
|
rescue EOFError
|
77
|
-
|
79
|
+
log_info { "io is EOF" }
|
78
80
|
s.close_write
|
79
81
|
break
|
80
82
|
rescue IOError
|
81
|
-
|
83
|
+
log_info { "socket is closed" }
|
82
84
|
break
|
83
85
|
rescue => e
|
84
|
-
|
86
|
+
log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
|
85
87
|
s.close_write
|
86
88
|
break
|
87
89
|
end
|
88
90
|
end
|
89
|
-
|
91
|
+
log_info { "finishing receiver thread" }
|
90
92
|
@receiver_thread_finished = true
|
91
93
|
close
|
92
94
|
ensure
|
93
|
-
|
95
|
+
log_info { "receiver thread finished" }
|
94
96
|
end
|
95
97
|
}
|
96
98
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
|
-
|
6
4
|
module HrrRbSsh
|
7
5
|
class Connection
|
8
6
|
class Channel
|
@@ -11,7 +9,6 @@ module HrrRbSsh
|
|
11
9
|
class ProcChain
|
12
10
|
class ChainContext
|
13
11
|
def initialize proc_chain
|
14
|
-
@logger = Logger.new self.class.name
|
15
12
|
@proc_chain = proc_chain
|
16
13
|
end
|
17
14
|
def call_next *args
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/channel/channel_type/session/proc_chain/chain_context'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -11,7 +10,6 @@ module HrrRbSsh
|
|
11
10
|
class Session
|
12
11
|
class ProcChain
|
13
12
|
def initialize
|
14
|
-
@logger = Logger.new self.class.name
|
15
13
|
@q = Queue.new
|
16
14
|
end
|
17
15
|
def connect next_proc
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
@@ -11,8 +11,9 @@ module HrrRbSsh
|
|
11
11
|
class RequestType
|
12
12
|
class Env
|
13
13
|
class Context
|
14
|
+
include Loggable
|
15
|
+
|
14
16
|
attr_reader \
|
15
|
-
:logger,
|
16
17
|
:username,
|
17
18
|
:io,
|
18
19
|
:variables,
|
@@ -20,8 +21,8 @@ module HrrRbSsh
|
|
20
21
|
:variable_name,
|
21
22
|
:variable_value
|
22
23
|
|
23
|
-
def initialize proc_chain, username, io, variables, message, session
|
24
|
-
|
24
|
+
def initialize proc_chain, username, io, variables, message, session, logger: nil
|
25
|
+
self.logger = logger
|
25
26
|
|
26
27
|
@proc_chain = proc_chain
|
27
28
|
@username = username
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/request_handler'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -13,10 +12,8 @@ module HrrRbSsh
|
|
13
12
|
class Env < RequestType
|
14
13
|
NAME = 'env'
|
15
14
|
|
16
|
-
def self.run proc_chain, username, io, variables, message, options, session
|
17
|
-
|
18
|
-
|
19
|
-
context = Context.new proc_chain, username, io, variables, message, session
|
15
|
+
def self.run proc_chain, username, io, variables, message, options, session, logger: nil
|
16
|
+
context = Context.new proc_chain, username, io, variables, message, session, logger: logger
|
20
17
|
handler = options.fetch('connection_channel_request_env', RequestHandler.new {})
|
21
18
|
handler.run context
|
22
19
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
@@ -11,16 +11,17 @@ module HrrRbSsh
|
|
11
11
|
class RequestType
|
12
12
|
class Exec
|
13
13
|
class Context
|
14
|
+
include Loggable
|
15
|
+
|
14
16
|
attr_reader \
|
15
|
-
:logger,
|
16
17
|
:username,
|
17
18
|
:io,
|
18
19
|
:variables,
|
19
20
|
:vars,
|
20
21
|
:command
|
21
22
|
|
22
|
-
def initialize proc_chain, username, io, variables, message, session
|
23
|
-
|
23
|
+
def initialize proc_chain, username, io, variables, message, session, logger: nil
|
24
|
+
self.logger = logger
|
24
25
|
|
25
26
|
@proc_chain = proc_chain
|
26
27
|
@username = username
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/request_handler'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -13,10 +12,8 @@ module HrrRbSsh
|
|
13
12
|
class Exec < RequestType
|
14
13
|
NAME = 'exec'
|
15
14
|
|
16
|
-
def self.run proc_chain, username, io, variables, message, options, session
|
17
|
-
|
18
|
-
|
19
|
-
context = Context.new proc_chain, username, io, variables, message, session
|
15
|
+
def self.run proc_chain, username, io, variables, message, options, session, logger: nil
|
16
|
+
context = Context.new proc_chain, username, io, variables, message, session, logger: logger
|
20
17
|
handler = options.fetch('connection_channel_request_exec', RequestHandler.new {})
|
21
18
|
handler.run context
|
22
19
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
@@ -11,8 +11,9 @@ module HrrRbSsh
|
|
11
11
|
class RequestType
|
12
12
|
class PtyReq
|
13
13
|
class Context
|
14
|
+
include Loggable
|
15
|
+
|
14
16
|
attr_reader \
|
15
|
-
:logger,
|
16
17
|
:username,
|
17
18
|
:io,
|
18
19
|
:variables,
|
@@ -24,8 +25,8 @@ module HrrRbSsh
|
|
24
25
|
:terminal_height_pixels,
|
25
26
|
:encoded_terminal_modes
|
26
27
|
|
27
|
-
def initialize proc_chain, username, io, variables, message, session
|
28
|
-
|
28
|
+
def initialize proc_chain, username, io, variables, message, session, logger: nil
|
29
|
+
self.logger = logger
|
29
30
|
|
30
31
|
@proc_chain = proc_chain
|
31
32
|
@username = username
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/request_handler'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -13,10 +12,8 @@ module HrrRbSsh
|
|
13
12
|
class PtyReq < RequestType
|
14
13
|
NAME = 'pty-req'
|
15
14
|
|
16
|
-
def self.run proc_chain, username, io, variables, message, options, session
|
17
|
-
|
18
|
-
|
19
|
-
context = Context.new proc_chain, username, io, variables, message, session
|
15
|
+
def self.run proc_chain, username, io, variables, message, options, session, logger: nil
|
16
|
+
context = Context.new proc_chain, username, io, variables, message, session, logger: logger
|
20
17
|
handler = options.fetch('connection_channel_request_pty_req', RequestHandler.new {})
|
21
18
|
handler.run context
|
22
19
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
@@ -11,15 +11,16 @@ module HrrRbSsh
|
|
11
11
|
class RequestType
|
12
12
|
class Shell
|
13
13
|
class Context
|
14
|
+
include Loggable
|
15
|
+
|
14
16
|
attr_reader \
|
15
|
-
:logger,
|
16
17
|
:username,
|
17
18
|
:io,
|
18
19
|
:variables,
|
19
20
|
:vars
|
20
21
|
|
21
|
-
def initialize proc_chain, username, io, variables, message, session
|
22
|
-
|
22
|
+
def initialize proc_chain, username, io, variables, message, session, logger: nil
|
23
|
+
self.logger = logger
|
23
24
|
|
24
25
|
@proc_chain = proc_chain
|
25
26
|
@username = username
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/request_handler'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -13,10 +12,8 @@ module HrrRbSsh
|
|
13
12
|
class Shell < RequestType
|
14
13
|
NAME = 'shell'
|
15
14
|
|
16
|
-
def self.run proc_chain, username, io, variables, message, options, session
|
17
|
-
|
18
|
-
|
19
|
-
context = Context.new proc_chain, username, io, variables, message, session
|
15
|
+
def self.run proc_chain, username, io, variables, message, options, session, logger: nil
|
16
|
+
context = Context.new proc_chain, username, io, variables, message, session, logger: logger
|
20
17
|
handler = options.fetch('connection_channel_request_shell', RequestHandler.new {})
|
21
18
|
handler.run context
|
22
19
|
|
data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/subsystem/context.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
@@ -11,16 +11,17 @@ module HrrRbSsh
|
|
11
11
|
class RequestType
|
12
12
|
class Subsystem
|
13
13
|
class Context
|
14
|
+
include Loggable
|
15
|
+
|
14
16
|
attr_reader \
|
15
|
-
:logger,
|
16
17
|
:username,
|
17
18
|
:io,
|
18
19
|
:variables,
|
19
20
|
:vars,
|
20
21
|
:subsystem_name
|
21
22
|
|
22
|
-
def initialize proc_chain, username, io, variables, message, session
|
23
|
-
|
23
|
+
def initialize proc_chain, username, io, variables, message, session, logger: nil
|
24
|
+
self.logger = logger
|
24
25
|
|
25
26
|
@proc_chain = proc_chain
|
26
27
|
@username = username
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/request_handler'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -13,10 +12,8 @@ module HrrRbSsh
|
|
13
12
|
class Subsystem < RequestType
|
14
13
|
NAME = 'subsystem'
|
15
14
|
|
16
|
-
def self.run proc_chain, username, io, variables, message, options, session
|
17
|
-
|
18
|
-
|
19
|
-
context = Context.new proc_chain, username, io, variables, message, session
|
15
|
+
def self.run proc_chain, username, io, variables, message, options, session, logger: nil
|
16
|
+
context = Context.new proc_chain, username, io, variables, message, session, logger: logger
|
20
17
|
handler = options.fetch('connection_channel_request_subsystem', RequestHandler.new {})
|
21
18
|
handler.run context
|
22
19
|
|
data/lib/hrr_rb_ssh/connection/channel/channel_type/session/request_type/window_change/context.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/
|
4
|
+
require 'hrr_rb_ssh/loggable'
|
5
5
|
|
6
6
|
module HrrRbSsh
|
7
7
|
class Connection
|
@@ -11,8 +11,9 @@ module HrrRbSsh
|
|
11
11
|
class RequestType
|
12
12
|
class WindowChange
|
13
13
|
class Context
|
14
|
+
include Loggable
|
15
|
+
|
14
16
|
attr_reader \
|
15
|
-
:logger,
|
16
17
|
:username,
|
17
18
|
:io,
|
18
19
|
:variables,
|
@@ -22,8 +23,8 @@ module HrrRbSsh
|
|
22
23
|
:terminal_width_pixels,
|
23
24
|
:terminal_height_pixels
|
24
25
|
|
25
|
-
def initialize proc_chain, username, io, variables, message, session
|
26
|
-
|
26
|
+
def initialize proc_chain, username, io, variables, message, session, logger: nil
|
27
|
+
self.logger = logger
|
27
28
|
|
28
29
|
@proc_chain = proc_chain
|
29
30
|
@username = username
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# vim: et ts=2 sw=2
|
3
3
|
|
4
|
-
require 'hrr_rb_ssh/logger'
|
5
4
|
require 'hrr_rb_ssh/connection/request_handler'
|
6
5
|
|
7
6
|
module HrrRbSsh
|
@@ -13,10 +12,8 @@ module HrrRbSsh
|
|
13
12
|
class WindowChange < RequestType
|
14
13
|
NAME = 'window-change'
|
15
14
|
|
16
|
-
def self.run proc_chain, username, io, variables, message, options, session
|
17
|
-
|
18
|
-
|
19
|
-
context = Context.new proc_chain, username, io, variables, message, session
|
15
|
+
def self.run proc_chain, username, io, variables, message, options, session, logger: nil
|
16
|
+
context = Context.new proc_chain, username, io, variables, message, session, logger: logger
|
20
17
|
handler = options.fetch('connection_channel_request_window_change', RequestHandler.new {})
|
21
18
|
handler.run context
|
22
19
|
|