net-ssh 2.6.6 → 2.6.7
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.
- data.tar.gz.sig +0 -0
- data/CHANGES.txt +6 -0
- data/lib/net/ssh.rb +12 -6
- data/lib/net/ssh/connection/channel.rb +3 -3
- data/lib/net/ssh/connection/session.rb +6 -2
- data/lib/net/ssh/version.rb +1 -1
- data/net-ssh.gemspec +2 -2
- data/test/connection/test_channel.rb +2 -2
- data/test/connection/test_session.rb +2 -2
- metadata +2 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES.txt
CHANGED
data/lib/net/ssh.rb
CHANGED
@@ -61,12 +61,13 @@ module Net
|
|
61
61
|
# This is the set of options that Net::SSH.start recognizes. See
|
62
62
|
# Net::SSH.start for a description of each option.
|
63
63
|
VALID_OPTIONS = [
|
64
|
-
:auth_methods, :bind_address, :compression, :compression_level, :config,
|
65
|
-
:encryption, :forward_agent, :hmac, :host_key, :kex, :keys, :key_data,
|
66
|
-
:languages, :logger, :paranoid, :password, :port, :proxy,
|
64
|
+
:auth_methods, :bind_address, :compression, :compression_level, :config,
|
65
|
+
:encryption, :forward_agent, :hmac, :host_key, :kex, :keys, :key_data,
|
66
|
+
:languages, :logger, :paranoid, :password, :port, :proxy,
|
67
67
|
:rekey_blocks_limit,:rekey_limit, :rekey_packet_limit, :timeout, :verbose,
|
68
68
|
:global_known_hosts_file, :user_known_hosts_file, :host_key_alias,
|
69
|
-
:host_name, :user, :properties, :passphrase, :keys_only
|
69
|
+
:host_name, :user, :properties, :passphrase, :keys_only, :max_pkt_size,
|
70
|
+
:max_win_size
|
70
71
|
]
|
71
72
|
|
72
73
|
# The standard means of starting a new SSH connection. When used with a
|
@@ -120,7 +121,7 @@ module Net
|
|
120
121
|
# host to a known_hosts dictionary file
|
121
122
|
# * :host_name => the real host name or IP to log into. This is used
|
122
123
|
# instead of the +host+ parameter, and is primarily only useful when
|
123
|
-
# specified in an SSH configuration file. It lets you specify an
|
124
|
+
# specified in an SSH configuration file. It lets you specify an
|
124
125
|
# "alias", similarly to adding an entry in /etc/hosts but without needing
|
125
126
|
# to modify /etc/hosts.
|
126
127
|
# * :kex => the key exchange algorithm (or algorithms) to use
|
@@ -133,6 +134,11 @@ module Net
|
|
133
134
|
# option is intended for situations where ssh-agent offers many different
|
134
135
|
# identites.
|
135
136
|
# * :logger => the logger instance to use when logging
|
137
|
+
# * :max_pkt_size => maximum size we tell the other side that is supported per
|
138
|
+
# packet. Default is 0x8000 (32768 bytes). Increase to 0x10000 (65536 bytes)
|
139
|
+
# for better performance if your SSH server supports it (most do).
|
140
|
+
# * :max_win_size => maximum size we tell the other side that is supported for
|
141
|
+
# the window.
|
136
142
|
# * :paranoid => either false, true, :very, or :secure specifying how
|
137
143
|
# strict host-key verification should be (in increasing order here)
|
138
144
|
# * :passphrase => the passphrase to use when loading a private key (default
|
@@ -217,7 +223,7 @@ module Net
|
|
217
223
|
when false, nil then return {}
|
218
224
|
else Array(use_ssh_config)
|
219
225
|
end
|
220
|
-
|
226
|
+
|
221
227
|
Net::SSH::Config.for(host, files)
|
222
228
|
end
|
223
229
|
end
|
@@ -107,15 +107,15 @@ module Net; module SSH; module Connection
|
|
107
107
|
# that time (see #do_open_confirmation).
|
108
108
|
#
|
109
109
|
# This also sets the default maximum packet size and maximum window size.
|
110
|
-
def initialize(connection, type, local_id, &on_confirm_open)
|
110
|
+
def initialize(connection, type, local_id, max_pkt_size = 0x8000, max_win_size = 0x20000, &on_confirm_open)
|
111
111
|
self.logger = connection.logger
|
112
112
|
|
113
113
|
@connection = connection
|
114
114
|
@type = type
|
115
115
|
@local_id = local_id
|
116
116
|
|
117
|
-
@local_maximum_packet_size =
|
118
|
-
@local_window_size = @local_maximum_window_size =
|
117
|
+
@local_maximum_packet_size = max_pkt_size
|
118
|
+
@local_window_size = @local_maximum_window_size = max_win_size
|
119
119
|
|
120
120
|
@on_confirm_open = on_confirm_open
|
121
121
|
|
@@ -72,6 +72,9 @@ module Net; module SSH; module Connection
|
|
72
72
|
@channel_open_handlers = {}
|
73
73
|
@on_global_request = {}
|
74
74
|
@properties = (options[:properties] || {}).dup
|
75
|
+
|
76
|
+
@max_pkt_size = (options.has_key?(:max_pkt_size) ? options[:max_pkt_size] : 0x8000)
|
77
|
+
@max_win_size = (options.has_key?(:max_win_size) ? options[:max_win_size] : 0x20000)
|
75
78
|
end
|
76
79
|
|
77
80
|
# Retrieves a custom property from this instance. This can be used to
|
@@ -286,8 +289,8 @@ module Net; module SSH; module Connection
|
|
286
289
|
# channel.wait
|
287
290
|
def open_channel(type="session", *extra, &on_confirm)
|
288
291
|
local_id = get_next_channel_id
|
289
|
-
channel = Channel.new(self, type, local_id, &on_confirm)
|
290
292
|
|
293
|
+
channel = Channel.new(self, type, local_id, @max_pkt_size, @max_win_size, &on_confirm)
|
291
294
|
msg = Buffer.from(:byte, CHANNEL_OPEN, :string, type, :long, local_id,
|
292
295
|
:long, channel.local_maximum_window_size,
|
293
296
|
:long, channel.local_maximum_packet_size, *extra)
|
@@ -503,7 +506,8 @@ module Net; module SSH; module Connection
|
|
503
506
|
info { "channel open #{packet[:channel_type]}" }
|
504
507
|
|
505
508
|
local_id = get_next_channel_id
|
506
|
-
|
509
|
+
|
510
|
+
channel = Channel.new(self, packet[:channel_type], local_id, @max_pkt_size, @max_win_size)
|
507
511
|
channel.do_open_confirmation(packet[:remote_id], packet[:window_size], packet[:packet_size])
|
508
512
|
|
509
513
|
callback = channel_open_handlers[packet[:channel_type]]
|
data/lib/net/ssh/version.rb
CHANGED
data/net-ssh.gemspec
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "net-ssh"
|
8
|
-
s.version = "2.6.
|
8
|
+
s.version = "2.6.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jamis Buck", "Delano Mandelbaum"]
|
12
12
|
s.cert_chain = ["gem-public_cert.pem"]
|
13
|
-
s.date = "2013-
|
13
|
+
s.date = "2013-04-11"
|
14
14
|
s.description = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2."
|
15
15
|
s.email = "net-ssh@solutious.com"
|
16
16
|
s.extra_rdoc_files = [
|
@@ -11,7 +11,7 @@ module Connection
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_constructor_should_set_defaults
|
14
|
-
assert_equal
|
14
|
+
assert_equal 0x8000, channel.local_maximum_packet_size
|
15
15
|
assert_equal 0x20000, channel.local_maximum_window_size
|
16
16
|
assert channel.pending_requests.empty?
|
17
17
|
end
|
@@ -126,7 +126,7 @@ module Connection
|
|
126
126
|
assert_equal CHANNEL_DATA, packet.type
|
127
127
|
assert_equal 0, packet[:local_id]
|
128
128
|
assert_equal "hello wo", packet[:data]
|
129
|
-
|
129
|
+
|
130
130
|
t.expect do |t2,packet2|
|
131
131
|
assert_equal CHANNEL_DATA, packet2.type
|
132
132
|
assert_equal 0, packet2[:local_id]
|
@@ -225,7 +225,7 @@ module Connection
|
|
225
225
|
result = nil
|
226
226
|
session.on_open_channel("auth-agent") { |*args| result = args }
|
227
227
|
process_times(2)
|
228
|
-
assert_equal P(:byte, CHANNEL_OPEN_CONFIRMATION, :long, 14, :long, 0, :long, 0x20000, :long,
|
228
|
+
assert_equal P(:byte, CHANNEL_OPEN_CONFIRMATION, :long, 14, :long, 0, :long, 0x20000, :long, 0x8000).to_s, socket.write_buffer
|
229
229
|
assert_not_nil(ch = session.channels[0])
|
230
230
|
assert_equal [session, ch, P(:byte, CHANNEL_OPEN, :string, "auth-agent", :long, 14, :long, 0x20001, :long, 0x10001)], result
|
231
231
|
assert_equal 0, ch.local_id
|
@@ -233,7 +233,7 @@ module Connection
|
|
233
233
|
assert_equal 0x20001, ch.remote_maximum_window_size
|
234
234
|
assert_equal 0x10001, ch.remote_maximum_packet_size
|
235
235
|
assert_equal 0x20000, ch.local_maximum_window_size
|
236
|
-
assert_equal
|
236
|
+
assert_equal 0x8000, ch.local_maximum_packet_size
|
237
237
|
assert_equal "auth-agent", ch.type
|
238
238
|
end
|
239
239
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -38,7 +38,7 @@ cert_chain:
|
|
38
38
|
MVhNUThCTTJKejBYb1BhblBlMzU0K2xXd2pwa1JLYkZvdy9aYlFIY0NMQ3Ey
|
39
39
|
NCtONmI2ZwpkZ0tmTkR6d2lEcHFDQT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
|
40
40
|
LS0tLS0K
|
41
|
-
date: 2013-
|
41
|
+
date: 2013-04-11 00:00:00.000000000 Z
|
42
42
|
dependencies:
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: test-unit
|
metadata.gz.sig
CHANGED
Binary file
|